我是 angularJs 的新手,当前工作的示例(小提琴)感觉不对。当您尝试模糊它应该增加的字段时event.times
,目前我$apply
在第 10 行这样做,所以我问有没有更好的方法来实现这一点?也许像这样var times = scope.$get(attrs.timesField);
然后scope.$apply(function(){ times += 1; });
问问题
109 次
3 回答
3
每当指令不使用隔离作用域并且您使用属性指定作用域属性,并且想要更改该属性的值时,请使用$parse:
<input custom-field times-field="event.times" ng-model="event.title" type="text">
link: function (scope, element, attrs){
var model = $parse(attrs.timesField);
element.bind('blur', function(){
model.assign(scope, model(scope) + 1);
scope.$apply();
});
}
于 2013-05-09T15:11:04.850 回答
0
这里不需要使用 eval ,你可以这样做:
scope.$apply(function(){
scope.event.times++;
});
但是,在使用此指令之前,您必须确保事件对象存在于范围内,并且我认为指令依赖于在其他地方设置的数据并不好。
你到底想达到什么目的?
于 2013-05-09T14:33:49.807 回答