使用角度1.6.1和角度ui路由器0.3.2解决问题

时间:2017-01-14 12:38:31

标签: angularjs angular-ui-router

  

这是我的模块:

> (function () {
>     'use strict';
> 
>     // CREATE module
>     angular
>         .module('home', []);
>     // Module's CONFIG
>     angular
>         .module('home')
>         .config(function ($stateProvider) {
>             console.log("angular.module('home').config()");
>             $stateProvider
>                 .state('search', {
>                     url: '/search',
>                     template: '<search books-list="$resolve.booksList"></search>',
>                     resolve: {
>                         booksList: function (dataService) {
>                             return dataService.get('app/data/books.json').then(function succsess(data) {
>                                 return data;
>                             }, function error(error) {
>                                 return error;
>                             });;
>                         }
>                     }
>                 });
>             /* Add New States Above */
>         }
> 
>         );
> 
> })();
  

这是我的组件:

(function () {
    'use strict';

/* JAVASCRIPT */

/**
 * Search Object/function
 */

console.log("Search component load");

/** @ngInject **/
function searchController($state) {
    /***************** PRIVATE *******************/

    console.log("searchController load");
    var ctrl = this;
    ctrl.x = ctrl.booksList;

    /**
    * @name: .
    * @description: .
    **/

    /****************** PUBLIC *******************/
}
/* ANGULAR */
angular
    .module('home')
    .component('search', {
        templateUrl: 'app/home/components/search/search.component.html',
        controller: searchController,
        bindings: {
            booksList: '<'
        }
    });

})();

  

我无法看到从我的模块上的resolve函数返回的数据   (等于未定义)   Angular版本1.6.1和ui路由器0.3.2   还尝试将booksList注入组件控制器但得到   未知提供商错误

2 个答案:

答案 0 :(得分:1)

  

使用此。$ onInit初始化我的bookList:

this.$onInit = function _init() {
            ctrl.booksList = ctrl.books.data;

        };

答案 1 :(得分:0)

首先你需要注入ui路由器

angular.module('yourmodule', [
    'ui.router'
  ]);