【发布时间】:2015-04-22 08:54:13
【问题描述】:
我的主要作用域中有一个变量:
scope.trigger
在我的指令中:
angular.module('modal').directive('nsModal', ['nsTools', function (Tools) {
return {
restrict: 'E',
replace: true,
scope:{
trigger: "="
},
templateUrl: 'common/modal.html',
controller: ['$scope', function (scope) {
scope.isShown = false;
scope.$watch(function () {
return scope.trigger;
}, function (n) {
if (n == 'order-button') {
scope.isShown = true;
}
else {
scope.isShown = false;
}
});
scope.clickClose = function ()
{
scope.currentTrigger = "";
}
scope.clickCancel = function ()
{
scope.currentTrigger = "";
scope.isShown = false;
}
scope.clickYes = function ()
{
scope.currentTrigger = "";
scope.isShown = false;
}
}]
}
}]);
我想更改 mainscope 触发器参数,所以我做了两种方式绑定。但是有了它,手表就不能工作了。 手表中的 scope.trigger 始终未定义;
当我删除 scope 部分时,手表工作正常,但随后更改未保存在主范围中
html:
在我的索引中:
<ns-modal />
和模态代码:
<div ng-show="isShown">
<div >
<div class="modal">
<div class="modalheader>
<p >Message</p>
<button ng-click="clickClose()"></button>
</div>
<div class="modal-body">
<span>Identify customer ?</span>
<div class="modalfooter">
<button id="cancel" ng-click="clickCancel()">No</button>
<button id="save" ng-click="clickYes()">Yes</button>
</div>
</div>
</div>
</div>
就这些
【问题讨论】:
-
你能把指令放在你的html中吗?
标签: javascript angularjs