ngRoute不起作用

时间:2014-10-21 07:07:24

标签: angularjs resolve ngroute

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

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

    但是我在pageCtrl.js上有一个事件。页面可以通过$location.path('/lsrc').search(searchService);转发到同一网址。您还可以在下面看到上述事件。

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

  3. 这是相关的代码部分

    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");
        }
    })();
    

    非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我的第二个问题已经解决了。我已经更改了SearchController,如下所示。 似乎在承诺后我错过了回拨功能。

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