0

私はangularJsが初めてで、現在動作している例(フィドル)は正しくありません。フィールドをぼかしようとすると、インクリメントする必要がありますevent.times。現在、$apply10行目でそれを行っているので、これを達成するためのより良い方法はありますか? たぶん、このようなものvar times = scope.$get(attrs.timesField);とその後scope.$apply(function(){ times += 1; });

4

3 に答える 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 に答える