0

我有一个使用 ng-view 的简单应用程序,里面有 ng-repeat。起初我是在没有 ng-view 的情况下做的,它工作得很好。然后我转换为 ng-view,ng-repeat 失败了。其他一切正常,只是 ng-repeat 吐出 $var 而不是实际值。(更奇怪的是,如果我点击“菜单”链接,它会产生另一块吐出的 $var 而不是改变页面。)

这里的答案表明我需要将这些项目放在 $rootscope 上,但无论我尝试哪种方式,我似乎都无法让它工作。整个事情只是默默地失败了,所以我什至没有错误消息要继续。据我所知,这意味着 $rootscope 正在被读取,但其他东西正在失败。我不知道是什么。

我倒数第二次尝试在http://plnkr.co/edit/fuz6JELf1em7VHrY41u4设置了一个 plunker 。我目前的尝试尝试了不同的变体,而是使用服务,但这也不起作用。

app.controller('VerbsController', [ '$rootScope', function( $rootScope ) {
    $rootscope.jverbs = [
        {id: 41, name:"Furu", vClass:"Class I", plainPreAffR :"furu", plainPreAffK:"ふる", vKanji1:"下る, 降る", vDef1:"to fall, descend", vType1:"v.i. ", vKanji2:"振る", vDef2:"to wave, shake, swing; throw (dice); reject, abandon", vType2:"v.t."  },
        {id: 42, name:"Futoru", vClass:"Class I", plainPreAffR :"futoru", plainPreAffK:"ふとる", vKanji1:"太る", vDef1:"to gain weight, become fat", vType1:"v.i."  },
        {id: 43, name:"Fuyasu", vClass:"Class I", plainPreAffR :"fuyasu", plainPreAffK:"ふやす",vKanji1:"増やす", vDef1:"to increase, augment", vType1:"v.t."  }
    ];
}]);

app.controller('MenuController', function($scope, $location) {
    $scope.olist = function() { $location.path('/list'); };
});

app.controller('ListController', function( $rootscope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
}); 

它一定是一些令人讨厌的小东西,我只是想念它。如果有人能帮我找到它,在此先感谢!

4

1 回答 1

1

我分叉了你 plunkr 并试图解决这个问题。您的 plunkr 代码存在很多问题,主要与使用的案例不正确以及路由路径指向partial不存在的文件夹有关。

但它认为主要问题是您的 ListController 定义不正确,导致模板渲染失败。

这就是它之前的样子(甚至还有一个带有 的类型$rootScope

app.controller('ListController', function( $rootscope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
});

这是正确的方法

app.controller('ListController', ['$rootScope', '$scope', '$location',function( $rootScope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
}]);

你在这里看到它的作用

http://plnkr.co/edit/Y4O5bgy6NH4MIH8A0xWI?p=preview

于 2013-06-23T06:28:26.317 回答