控制器:
'use strict'
angular.module('browse', [])
.controller('browseCtrl', ['$scope', 'exchangesFctr', function($scope, exchangesFctr) {
// exchanges
$scope.exchanges = exchangesFctr.get();
$scope.exchange = null;
$scope.$watch('exchange', function() {
console.info('EXCHANGE', $scope.exchange);
});
// sectors
$scope.sector = null;
}]);
交换部分:
<div class="btn-group" ng-controller="browseCtrl">
<button type="button" class="btn" btn-radio="exchange" ng-model="$parent.exchange"
ng-repeat="exchange in exchanges | orderBy:exchange.name">{{ exchange.name }}</button>
</div>
<ng-include src="'browse/sectors.html'" />
部门:
<div class="btn-group" ng-controller="browseCtrl" ng-hide="$parent.exchange == null">
<p>todo</p>
</div>
1)使用ui.bootstrap:为什么在交换部分是绑定到父工作所需的ng模型?我希望这是ng-model="exchange"
?我在这里做错了吗?
2)在扇区部分ng-hide
仅执行一次。我希望在更改$scope.exchange
时更新表达式。我必须使用什么表达才能始终保持最新状态?
答案 0 :(得分:1)
这与UI Bootstrap无关。这是因为正常的javascript原型行为而发生的。如果使用原始类型,则必须使用$ parent,否则如果切换到对象语法而不需要使用$ parent,请参阅下面的示例代码
$ scope.exchange = {name:null};
然后html应该是ng-model =“exchange.name”(如果你想要对象而不是原语,则不需要使用父级)
网址应详细解释您的所有内容https://github.com/angular/angular.js/wiki/Understanding-Scopes