0

次のようなディレクティブを作成したいと思います (式を渡します):

<button ui:spin="form.submitting">Save</button>

しかし、form.submitting 式にアクセスできるかどうか (またはその方法) が不明です。過去に私は次のようなことをしました:

<button ui:spinner-button ui:spin="form.submitting">Save</button>

uiSpinnerButton ディレクティブで uiSpin 属性を読んだところですが、これを「オールインワン」で行う方法を知りたいです。

何か案は?

4

3 に答える 3

2

次のようにディレクティブのスコープを定義することで、それを参照できるはずです。

scope: {
    spin: '=uiSpin'
}

ディレクティブのリンク関数内では、 になりますscope.spin

于 2013-07-25T13:49:01.817 に答える
1

分離されていないスコープの場合は、$parseを使用します。

myApp.directive('uiSpin', function($parse) {
   return function(scope, element, attrs) {
      var model = $parse(attrs.uiSpin)
      console.log(model(scope));
      // If you want to change the value in your directive:
      model.assign(scope, "???");
   }
});

値を変更する必要がない場合は、代わりに $eval を使用できます。

console.log(scope.$eval(attrs.uiSpin));
于 2013-07-25T14:42:36.483 に答える
0

私はそれを手に入れました、私のディレクティブは次のようになります:

.directive('uiSpin', function() {
    return {
        link : function(scope, element, attrs, ngModel) {

            scope.$watch(attrs.uiSpin, function() {

                // do stuff here...

            });
        }
    }

})

私はこれを次のソースに基づいていますngShow: https://github.com/angular/angular.js/blob/master/src/ng/directive/ngShowHide.js

于 2013-07-25T14:52:37.563 に答える