【问题标题】:ngRoute does not workngRoute 不起作用
【发布时间】:2014-10-21 07:07:24
【问题描述】:

我有两个角度路由问题并解决。我对 Angularjs 很陌生。这就是为什么我的问题可能非常愚蠢。

  1. 当我在浏览器地址栏输入mysite/lsrc?q=keyword时,浏览器会在页面上显示Json结果。浏览器无法转发到searchView.html

    但我在 pageCtrl.js 上有一个事件。页面可以通过$location.path('/lsrc').search(searchService);转发到相同的URL你也可以看到下面提到的事件。

  2. 我在 searchView.html 上看不到 searcView 模型。我觉得我的

这是相关的代码部分

app.config(function ($routeProvider, $locationProvider) {
    $routeProvider.when('/lsrc', {
        templateUrl: '/app/search/searchView.html',
        controller: 'SearchController as vMain',
        //resolve:
        resolve: {
            searchResource: "searchResource",
            searchService: "searchService",
            searchView: function (searchResource, searchService) {
                return searchResource.query(searchService).$promise;
            }
        }
    });

PageControl.js:

(function () {
    "use strict";
    angular.module("logicApp")
        .controller("PageController", ['searchService', '$location',
    PageController]);

    function PageController(searchService, $location) {
        var vmPage = this;
        //forward page to the searc view
        vmPage.LogicSearch = function ($event) {
            $event.preventDefault();
            $event.stopPropagation();
            $location.path('/lsrc').search(searchService);
        };
    }
})();

SearchController.js:

(function () {
    "use strict";
    angular.module("logicApp")
        .controller("SearchController", ['searchView', SearchController]);
    function SearchController(searchView) {
        var vMain = this;
        vMain.searchView = searchView;
    }
})();

SearchView.html:

<ul ng-repeat="item in vMain.searchView.Items">
    <li class="product-little-pic">{{item.ImageUrl}}</li>
</ul> 

searchResource.js:

(function () {
    "use strict";
    angular.module("logicApp")
        .factory("searchResource", ["$resource", searchResource]);
    // enter code here
    function searchResource($resource) {
        return $resource("/lsrc");
    }
})();

非常感谢您的帮助。

【问题讨论】:

  • 您在templateUrl: '/app/search/SearchView.html' 中似乎有错字。 SearchView.html 以大写字母开头,但在您的文本中您说 searchView.html。尝试使用小写。
  • 嗨@maxdec,感谢您的评论。在开发环境上是正确的。

标签: angularjs resolve ngroute


【解决方案1】:

我的第二个问题解决了。我已将 SearchController 更改如下。 看来我在promise之后错过了回调函数。

function SearchController(searchView) {
        var vMain = this;
        vMain.searchView = searchView.$promise.then(function (result) {
            vMain.searchView = result[0];
        });
    }

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2017-09-12
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多