在以下设置中遇到很多麻烦(我无法在没有重大改写的情况下进行更改)。 该问题的概述是,当我通过ui-view(来自ui-router)加载的另一个部分通过ng-include嵌入部分时,ng-bind没有绑定回控制器范围。
这是一个简化的例子...... 这是ui路由器
.state('investments', {
url: '/investments/:Uid',
abstract: true,
templateUrl: 'views/investments.html',
controller: 'InvestmentsCtrl',
parent: 'root'
})
.state('investments.funds', {
url: '',
templateUrl: 'views/investments/funds.html',
})
第一部分视图/ investments.html 包含一个ui-view
<div>
<section class="entity-details clearfix" ui-view></section>
</div>
其中包含 funds.html ,其中包含以下内容
<tabset class="tabbable">
<tab>
<ng-include src="'/views/investments/_investment.html'"></ng-include>
</tab>
最后 _investment.html 有一个输入框,它绑定到控制器上的变量(InvestController)
<input type="text" placeholder="Search" class="search-query" ng-model="invsearch.query"/>
<button ng-click="update();">Update</button>
现在在控制器中,我有以下内容:
angular.module('cougarApp')
.controller('InvestController', function ($scope, $sce, $state, $debounce) {
$scope.invsearch = {};
$scope.update= function () {
console.log($scope.invsearch);
};
所以它很直接(尽管所有嵌套包含)。 单击调用$ scope.update()的按钮时的底线 - 在控制器中调用该函数,但$ scope.invsearch的值是一个空对象。即使我把一个值放入我的文本框?
现在,完全相同的代码在我不使用初始ui-view时有效。 即如果我的第一个模板直接调用ng-include,那么一切正常。 我仍然对角度有点新意,显然我在这里缺少嵌套范围。
请有人帮帮我。 感谢
答案 0 :(得分:0)
尝试在您的investments.html文件中声明控制器,如下所示。
<div ng-controller="InvestmentsCtrl">
<section class="entity-details clearfix" ui-view></section>
</div>