1

我想知道是否有人可以提供帮助?

我有 1 个 html 文件和一个通过 $routeProvider 分配的控制器,就像这样

          .when('/', {
            templateUrl: 'views/contents.html',
            controller: 'FirstCtrl'

一切正常,我让我的视图对一个对象进行 ng-repeat 并且视图像这样更新

   <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 不存在。

有谁知道发生了什么事?我使用正确吗?

提前致谢

4

1 回答 1

3

如果您在 SecondCtrl 中初始化 $scope.contents,那么您可能正在尝试一些 $scope 阴影。

尝试在 FirstCtrl 内以及更新数据时创建“内容”对象。不要重新创建内容对象(即不要做 >> $scope.contents = {};)只需更新数据对象/数组 >>$scope.content.data = ...

如果这不能解决您的问题,请您提供一个解决问题的方法。您可以将此作为起点http://jsfiddle.net/IgorMinar/ADukg/

于 2013-07-22T14:30:58.313 回答