我有一些導航欄項目只有在用戶通過驗證時纔會顯示。簡化視圖下方:如何從指令訪問工廠?
導航條
<body ng-controller="mainController as main">...
<li ng-show="main.isSecretAgent"><a href="#secret">THIS IS A SECRET</a></li>
</body>
FACTORY
tardis.factory('bgData', [function() {
var persistentData = {
isSecretAgent: false,
};
return {
checkIfSecretAgent: function(){
return persistentData.isSecretAgent
}
}
}]);
主控制器
tardis.controller('mainController',["$scope","bgData",
function($scope,bgData) {
$scope.isSecretAgent = bgData.checkIfSecretAgent()
}
]);
假設bgData
工廠的isSecretAgent
值可能會根據用戶操作而更改,那麼如何根據此設置我的ng-show
進行更新?
是,但有時ng-if由於DOM操作而改變緩慢,並且這可能很難看。 – 2015-04-05 03:49:16
將'ng-show'改爲函數並等待像@PeterAshwell這樣的摘要表明和maandoo的解決方案「更好練習「? – Huey 2015-04-05 03:50:50
@PeterAshwell是的,可能存在ng的問題 - 如果你喜歡你所說的和某些範圍的pr因爲它創建了自己的範圍,但在身份驗證的情況下,使用ng會更好 - 如果正確? – Srinath 2015-04-05 03:51:37