создать пользовательские директивы и используя два способа связывания (=)Angularjs пользовательские директивы два способа связывания не работает
Но я хочу, чтобы следить за изменениями в контроллере при изменении модели в директиве.
<div ng-app="zippyModule">
<div ng-controller="Ctrl3">
Title: <input ng-model="title">
<hr>
<div class="zippy" zippy-title="title" ff="titleChanged()"></div>
</div>
</div>
function Ctrl3($scope) {
$scope.title = 'Lorem Ipsum';
$scope.titleChanged = function() {
//ALERT COMMING WITH OLD VALUE NOT UPDATED
alert($scope.title);
}
}
angular.module('zippyModule', [])
.directive('zippy', function(){
return {
restrict: 'C',
replace: true,
scope: { title:'=zippyTitle',f:'&ff' },
template: '<input type="text" value="{{title}}"style="width: 90%" ng-click="onclick()"/>',
link: function(scope, element, attrs) {
// Your controller
scope.onclick = function() {
scope.title +="_";
if (scope.$root.$$phase != '$apply' && scope.$root.$$phase != '$digest') {
scope.$apply();
}
scope.f();
}
}
}
});
titleChanged метод вызывает, но $ scope.title отправляется со старым значением. если удалить
if (scope.$root.$$phase != '$apply' && scope.$root.$$phase != '$digest') {
это если и вызвать direcly сфера. $ Применять() метод,
Наносить за исключением прогресса бросает.
Я знаю, что это будет звучать странно, но поместите 'title' внутри другого класса и назовите его как' myClass.title', посмотрите, работает ли это :) –
Я имею в виду только изменение 'zippy-title =" myClass. title "и определение в контроллере:' $ scope.myClass.title'. –