2016-08-03 2 views
0

マイ状態state.jsAngualrJSは

(function() { 
    'use strict'; 

    angular.module('app').config(stateConfig); 

    stateConfig.$inject = [ '$stateProvider' ]; 

    function stateConfig($stateProvider) { 
     $stateProvider.state('bmc', { 
      parent : 'entity', 
      url : '/bmc', 
      data : { 
      authorities : [ 'ROLE_USER', 'ROLE_ADMIN' ], 
      }, 
      views : { 
       '[email protected]' : { 
       templateUrl : 'bmc.html', 
       controller : 'BmcController', 
       controllerAs : 'vm' 
       } 
      } 
     }).state('list', { 
      parent : 'bmc', 
      url : '/list/:routeId/:entity', 
      data : { 
       authorities : [ 'ROLE_ADMIN', 'ROLE_USER' ], 
      }, 
      views : { 
       '[email protected]' : { 
       templateUrl : 'list.html', 
       controller : 'ListController', 
       controllerAs : 'vm' 
       } 
      }, 
      resolve : { 
      loadMyFiles : function($ocLazyLoad) { 
       return $ocLazyLoad.load({ 
        name : 'list', 
        files : [ 'crud.service.js', 'list.controller.js' ] 
       }) 
      }, 
      translatePartialLoader : [ '$translate', '$translatePartialLoader', function($translate, $translatePartialLoader) { 

       return $translate.refresh(); 
      } ] 
      } 
     }); 
    } 
})(); 

list.controller.js

(function() { 
    'use strict'; 

    angular.module('app').controller('ListController', ListController); 

    ListController.$inject = [ '$scope', '$state', '$stateParams' ]; 

    function ListController($scope, $state, $stateParams) { 
     var vm = this; 

     console.log($stateParams.entity); 
    console.log($stateParams.routeId); 
    } 
})(); 

コントローラを呼び出すことではありません。私はListControllerがクリックで呼び出されることを期待していたので、どこに問題があるのか​​分かりません。おそらく

<a ui-sref="list({routeId: node.name, entity: entity.name})">{{entity.name}} </a> 
+0

私の推測では、解決セクションで何かが解決されない場合がありということでしょう。これらの値が解決されるまで、コントローラを作成することはできません。今すぐコメントしてください。そして/またはいくつかのログメッセージを追加してください。 – Duncan

+0

私は参照してください。大丈夫私は試してみましょう。 –

+0

私はそれらのjsをindex.htmlに直接提出しましたが、まだ何もしません。私は何か非常に間違っていると思う。 –

答えて

0

bmc.html

resolve

値のいずれかが失敗しています。あなたは$rootScope$stateChangeErrorを監視して、これらのケースを確実に処理する必要があります。

$ stateChangeError - 遷移中にエラーが発生したときに発生します。 あなたの解決策 機能(JavaScriptエラー、存在しないサービスなど)でエラーが発生した場合は、伝統的には投げないことに注意してください。すべてのエラーをキャッチするには、この$ stateChangeError イベントを待機する必要があります。 $ UrlRouterがURLを以前の有効な場所(URLナビゲーションの場合は の場合)に戻さないようにするには、event.preventDefault()を使用してください。

$rootScope.$on('$stateChangeError', 
function(event, toState, toParams, fromState, fromParams, error){ ... 
}) 
+0

これは非常に役に立ちました。ありがとうございました。それは翻訳の解決セクションで何らかの問題でした。私はそれを削除し、正常であるようです。私が気づいたこととあなたの意見を持ってほしいもう一つのこと。私は私のbmcセクションの中に私のリストセクションを持っていたいが、特定のセクションについてのみ、全部ではない。 Thrの問題は、domがロードされたためにコントローラがロードされないことがあるので、bmcセクションの後にあるかもしれないので、内部リストコントローラは動作しません。どう思いますか?あなたが見ることができるように、私の 'list'ビューには名前fieldContent @が含まれています。これはbmc.htmlにあります。 –

+0

おそらく別の質問である必要があります。 – Duncan

関連する問題