gpt4 book ai didi

javascript - 在隔离范围内观看,双向绑定(bind)不起作用

转载 作者:行者123 更新时间:2023-11-30 12:24:47 25 4
gpt4 key购买 nike

我的主范围内有一个变量:

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 触发器参数,所以我进行了双向绑定(bind)。但是有了它, watch 就不能工作了。 watch 中的 scope.trigger 始终未定义;

当我删除 scope部分 watch 工作正常但随后更改未保存在主范围内

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 中,应添加 trigger 属性:

<ns-modal trigger="trigger"/> 

请注意,trigger 可以是任何变量(但您在 main 作用域中将其称为 trigger)。

这是因为添加时:

scope:{
trigger: "="
},

指令的新作用域被创建。因此,您应该使用属性指定传递给指令的每个变量;

关于javascript - 在隔离范围内观看,双向绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29792400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com