Angular + UIルータのコントローラのデータ解決方法 -- angularjs フィールド と coffeescript フィールド と angular-ui-router フィールド と iife フィールド 関連 問題

How better resolve data for controller in Angular + ui-router












0
vote

問題

日本語

ロードされる前にコントローラ内のデータを解決する必要があります。だから私はルータでこれをすることにしました。しかし、私はこれを行う方法を疑問に思っていて、ルーターとコントローラーの間のロジックを分割しませんでした。だから私はいくつかの研究をして、Todd Mottoがコントローラ内の resolve 関数を作成し、それをルータで使用するよりも resolve を作成することをお勧めします。

main.controller.coffee

<事前> <コード> (-> Main = (someService) -> @data = someService.data return Main.resolve = () -> someService: (someService) -> someService.getAll() Main .$inject = ['someService'] angular .module('app') .controller('Main', Main) )()

app.routes.coffee

<事前> <コード> (-> routes = ($stateProvider, $urlRouterProvider) -> $urlRouterProvider.otherwise "/home" $stateProvider .state 'main', url: '/' templateUrl: 'app/layout/main.html' resolve: Main.resolve controller: 'Main' controllerAs: 'main' routes.$inject = ['$stateProvider', '$urlRouterProvider'] angular .module('app') .config(routes) )()

問題は、iif内のすべてのモジュールをラップする(グローバルネームスペースの汚染を避けるために)メインコントローラがルータに到達できない(未定義)ことです。誰かがこの問題を解決する方法を教えてくれる?

英語

I need to resolve data in controller before it's loaded. So I decided to do this in router. But I was wondering how to do this and don't split logic between router and controller. So I've made some research and find out that Todd Motto suggest to create resolve function in controller and than use it in router:

main.controller.coffee

(->    Main = (someService) ->     @data = someService.data      return    Main.resolve = () ->     someService: (someService) ->       someService.getAll()    Main     .$inject = ['someService']    angular     .module('app')     .controller('Main', Main) )() 

app.routes.coffee

(->    routes = ($stateProvider, $urlRouterProvider) ->      $urlRouterProvider.otherwise "/home"      $stateProvider       .state 'main',         url: '/'         templateUrl: 'app/layout/main.html'         resolve: Main.resolve         controller: 'Main'         controllerAs: 'main'    routes.$inject = ['$stateProvider', '$urlRouterProvider']    angular     .module('app')     .config(routes)  )() 

The problem is that when I wrap all modules inside an IIFE (to avoid polluting the global namespace) Main controller is not reachable (undefined) in router. Could somebody advice me how to solve this problem?

</div
           
   
   

回答リスト

0
 
vote

これを試すことができます、

<事前> <コード> (-> routes = ($stateProvider, $urlRouterProvider) -> $urlRouterProvider.otherwise "/home" $stateProvider .state 'main', url: '/' templateUr l: 'app/layout/main.html' resolve: { main: function() { return Main.resolve; }, controller: 'Main' controllerAs: 'main' routes.$inject = ['$stateProvider', '$urlRouterProvider'] angular .module('app') .config(routes) )()
 

You could try this,

(->        routes = ($stateProvider, $urlRouterProvider) ->          $urlRouterProvider.otherwise "/home"          $stateProvider           .state 'main',             url: '/'             templateUr  l: 'app/layout/main.html'         resolve: {             main: function() {                   return Main.resolve;         },         controller: 'Main'         controllerAs: 'main'    routes.$inject = ['$stateProvider', '$urlRouterProvider']    angular     .module('app')     .config(routes)  )() 
</div
 
 
 
 

関連する質問

834  JavaScriptの(関数(){})()構文とは何ですか?  ( What is the function construct in javascript ) 
私はこれが何を意味するのか知っていましたが、私は今苦労しています... これは基本的に<コード> document.onload ?です。 <事前> <コード> (function () { })(); ...

14  TypesScriptの列挙型:JavaScriptコードは何をしていますか?  ( Enums in typescript what is the javascript code doing ) 
以下の種類: <事前> <コード> enum PrimaryColors { Red, Green, Blue }; は、次のJavaScriptを作成します。 <事前> <コード> TextInput 10 (Takes only a number) ...

4  参照ではないIIFEを使用してクラスを作成しますか?  ( Create a class with iife that isnt a reference ) 
私はJavaScriptに新しい、私はプライベートデータと公開機能を使って「クラス」を作成して頭を包み込もうとしています。私はすぐに呼び出された関数式(IIFE)を達成しましたが、私が新しいオブジェクトを "インスタンス化"新しいオブジェクトを「インスタンス化...

1  これら2つの異なるモジュールパターン構文の間の関数差は何ですか  ( What is the functional difference between these two different module pattern syn ) 
私はどこでもこの構文を見ます: <事前> <コード> var mod = (function(){ var pvtvar; var pvtfunc = function(){}; //return an object literal retu...

0  JavaScript:ASYNC / AWAITとIIFEを使用して同期動作を取得しようとしている  ( Javascript trying to get a synchronous behaviour with async await and iife ) 
下記のコードでは、MSG#1、MSG#2、MSG#3をこの順に取得したいです。私は今、今すぐ登場しています:Msg#1、Msg#3、MSG#2。手伝ってくれてありがとう ! denys <事前> <コード> function timeoutPromise(...

2  IIFEは、(通常の非IIFE関数とは対照的に)グローバルスコープを汚染することではありません。 [複製]  ( How does an iife help in variable name collisions in not polluting the global ) 
この質問はすでにここで回答を持っています どのようにすぐに呼ばれるそれはグローバルスコープの汚染からの汚染? (2回答) ...

9  $ vs.iifeでのjqueryを$の代わりに理解する  ( Understanding vs jquery in iife instead of ) 
:の違いがあるかどうかを理解しようとしています <事前> <コード> (function($){ ... })(jQuery); VS <事前> <コード> (function($){ ... })($); 注jQueryは$に置き換えられ...

0  JavaScriptモジュールパターン:ユーザー実装可能機能  ( Javascript module pattern user implementable function ) 
だから私はモジュールパターンを使用して、プライベートおよびパブリックメソッドとプロパティを使って自分の 'API'を作成します。これまでのところとても良い。 しかしながら:私はユーザーによって変更/実装できる公衆機能/フックを追加したいです。 問題は、関数が...

0  IIFEでインスタンスプロパティを使用してください  ( Using instance property in iife ) 
メソッドのIIFEでインスタンス変数を使用する方法? 私のスタートメソッドからエラーを出します: アカウントのTypeError:未定義は関数ではありません 私はコンソールで this.element を記録し、未定義のものであるが、IIFEの外側にはうま...

601  「関数(){...})()」のような匿名関数でJavaScriptファイル全体をラップする目的は何ですか?  ( What is the purpose of wrapping whole javascript files in anonymous functions li ) 
私は最近多くのJavaScriptを読んでいて、インポートする.jsファイルで、ファイル全体が次のように折り返されていることがわかっています。 <事前> <コード> (function() { ... code ... })(); ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有