对于我的指令,我有以下内容让我最需要的地方,我的问题是ngModelCtrl
在执行$name
函数时有一个未定义的属性.toggleFlyout()
。我的目的是为它赋予一个名称,以便指令管理ng-model
指令中的命名模型集,并将对该命名模型的更改向上传播到scope.$parent
:
编辑 :此处尝试的Plunkr:http://plnkr.co/edit/uD21fH62GLA5THs8ZuPj
<button data-ng-model="flyoutIsToggled" data-flyout-toggle>Toggle Flyout</button>
.directive('flyoutToggle', function () {
return {
require: '^ngModel',
restrict: 'A',
link: function(scope, element, attrs, ctrl) {
var ngModelCtrl = ctrl;
scope.toggleFlyout = function () {
ngModelCtrl.$modelValue = !ngModelCtrl.$modelValue;
scope.$parent[ngModelCtrl.$name] = !ngModelCtrl.$modelValue;
}
//ui->model
element.bind('click', function (e) {
scope.toggleFlyout();
});
}
}
})