我的指令有問題。 如果我從彈出控制器調用行$scope.popup.show = false
,它工作正常。 如果我從子contentDirective
調用$scope.hideModal()
,調用該代碼(在調試中檢查),但$scope.popup.show
值不變(調試時該值爲「false」),彈出窗口不會隱藏:/。AngularJS:從子控制器隱藏彈出(popup內容)
你有什麼想法嗎? :)
的index.html:
<popup title="sometitle">
<contentDirective> </contentDirective>
</popup>
popup.html:
<div ng-show="popup.show">
<div ng-transclude></div>
</div>
popup.js
.directive(....
return {....
scope: {}
}
})
.controller(....
$scope.hideModal = function()
{
$scope.popup.show = false;
}
}]);
contentDirective.htlm(非隔離範圍)
<div>
<button onclick="changeSomethingAndHide()"/>
</div>
個
contentDirective.js
.controller(....
$scope.changeSomethingAndHide = function()
{
//calls the parent function
$scope.hideModal();
}
}]);
也許我錯過了什麼..
謝謝!
嗨@rchawdry,謝謝我要挖掘到這些鏈接:)。 – ogdabou 2014-10-17 07:49:52
我在第二個鏈接中使用瞭解決方案:在指令中注入父彈出控制器。但實際上這是我從一開始就在做的事情,我認爲只要調用示波器功能就會更清晰。 「這有點令人困惑,但有很好的理由」,我想他們中的一個就是知道函數在哪裏定義,nop? 無論如何,謝謝你! – ogdabou 2014-10-17 08:17:10