0

角度ルーティングと解決に 2 つの問題があります。私はAngularjsが初めてです。だからこそ、私の質問は非常にばかげている可能性があります。

  1. ブラウザのアドレスバーに入力するmysite/lsrc?q=keywordと、ブラウザはJsonの結果をページに表示します。ブラウザを に転送できませんでしたsearchView.html

    しかし、pageCtrl.js にイベントがあります。$location.path('/lsrc').search(searchService);ページは、以下のイベントによっても同じ URL に転送される可能性があります。

  2. searchView.html に searchView モデルが表示されませんでした。私は私のと思います

関連するコード部分は次のとおりです

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

どうぞよろしくお願いいたします。

4

1 に答える 1

0

私の2番目の問題は解決されました。以下のように SearchController を変更しました。約束どおり、コールバック機能を逃したようです。

function SearchController(searchView) {
        var vMain = this;
        vMain.searchView = searchView.$promise.then(function (result) {
            vMain.searchView = result[0];
        });
    }
于 2014-10-21T09:25:21.247 に答える