这个角度数据绑定表达式在幕后做了什么

时间:2016-06-30 20:49:57

标签: angularjs data-binding angularjs-directive

表达式绑定问题: 如果我的指令中有以下行:

<div ng-model="ngModel" >
    <button ng-click="signature = accept()">Sign</button>
</div>

指令:

angular.module('app.layout')
.directive('signature', function () {
    return {
        restrict: 'E',
        scope: {
            ngModel: '='
        },
        require: 'ngModel',

        link: function ($scope, elem, attr) {
            $scope = attr.ngModel;

        },
        templateUrl: 'src/client/app/widgets/signature/signature.html'
    };
});

这里发生了什么?

<button ng-click="signature = accept()">Sign</button>

这是否等同于: 答:

$scope.ngModel.signature  = accept();

B:

ngModel.signature  = accept();

C:

var signature  = accept();

d

this.signature  = accept();

E:以上都不是。

$ scope是否绑定$ scope.ngModel.signature或$ scope.signature或其他内容?

signature会怎样?

这也是有效的,甚至是一个好主意

ng-click="signature = accept()"

? (没有思考......因为缺乏清晰度,但也许我错了。)

更新 完全披露:我正在看 https://github.com/legalthings/angular-signature 基本的例子是:

<signature-pad accept="accept" clear="clear" height="220" width="568"></signature-pad>
<button ng-click="clear()">Clear signature</button>
<button ng-click="signature = accept()">Sign</button>

我正在编写在html模板中使用它的签名委托。

0 个答案:

没有答案