我想知道是否有人可以提供帮助?
我有1个html文件和一个通过$ routeProvider分配的控制器,如此
.when('/', {
templateUrl: 'views/contents.html',
controller: 'FirstCtrl'
一切正常,我的观点在对象上做了重复,并且视图更新如此
<tbody ng-repeat="item in contents.data">
<tr>
这段代码工作正常,我通过FirstCtrl更新了我的项目,如此
$scope.contents = {};
$scope.contents.data = {...}
我已经将这个功能提取到它自己的控制器中,它仍然是相同的视图,所以我有1个视图和2个控制器......第二个控制器是通过在tbody上指定ng-controller来使用的
<tbody ng-controller="SecondCtrl" ng-repeat="item in contents.data">
<tr>
现在我知道控制器正在工作,因为我在a上插入了一个ng-click,它会激活该功能。我也是从我的第二个控制器更新我的$ scope,但它似乎也是空白的..
从文档中可以看出,如果$ scope存在于父控制器中(第一个),那么子控制器会覆盖它(第二个),但这不是我的情况,我没有在第一个控制器中定义它
我甚至尝试了一个简单的
测试 $scope.testme = "hi";
和视图
{{ testme }}
什么都没有......就像$ scope不存在一样。
有谁知道最近发生了什么?我正确使用它?
提前致谢
答案 0 :(得分:3)
如果你正在初始化SecondCtrl中的$ scope.contents,那么你可能正在试验一些$ scope阴影。
尝试在FirstCtrl内部创建“contents”对象并更新数据。不要重新创建内容对象(即不要做&gt;&gt; $scope.contents = {};
)只更新数据对象/数组&gt;&gt; $scope.content.data = ...
如果这不能解决您的问题,请您提供一个解决问题的工作小提琴。您可以将此作为起点http://jsfiddle.net/IgorMinar/ADukg/