表达式绑定问题: 如果我的指令中有以下行:
<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模板中使用它的签名委托。