私はangularJsが初めてで、現在動作している例(フィドル)は正しくありません。フィールドをぼかしようとすると、インクリメントする必要がありますevent.times
。現在、$apply
10行目でそれを行っているので、これを達成するためのより良い方法はありますか? たぶん、このようなものvar times = scope.$get(attrs.timesField);
とその後scope.$apply(function(){ times += 1; });
3 に答える
3
ディレクティブが isolate スコープを使用せず、属性を使用してスコープ プロパティを指定し、そのプロパティの値を変更する場合は常に、$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
そうです、それはそのようなことをする正しい方法ではありません。特にディレクティブで使用する場合は、 $watch()関数を見つけてください。
于 2013-05-09T13:14:53.273 に答える