アプリケーションの初期化で問題が発生しました。jsfiddleを作成します。これは、デスクトップでは機能しますが、jsfiddleでは機能しません。
私はあなたがその考えを理解することを望みます。
初めに、私のアプリケーションでは、restからいくつかの値を取得し、Ember.Selectに値を取得する必要があります。選択した内容に応じて、すべてのconnectOutlets関数がこの値を使用します。
ここで私はRESTからいくつかのデータを取得します
$.ajax({
url: 'https://api.github.com/repos/emberjs/ember.js/contributors',
dataType: 'jsonp',
context: this,
success: function(response){
[{login: 'a'},{login: 'b'}].forEach(function(c){
this.allContributors.addObject(App.Contributor.create(c))
},this);
}
})
そしてそれを私の選択ビューに置きます:
{{view Ember.Select
contentBinding="App.Contributor.allContributors"
selectionBinding="App.Contributor.selectedContributor"
optionLabelPath="content.login"
optionValuePath="content.id" }}
{{outlet}}
そして、私のルートのすべてで、この選択ボックスで選択されているこの値を使用する必要があります
index : Ember.Route.extend({
route: '/',
connectOutlets: function(router){
router.get('applicationController').connectOutlet('oneContributor',App.Contributor.selectedContributor);
}
})
また、currentStateのconnectOutletsを呼び出すこのselectedContributor値にオブザーバーを追加します(これを行うべきではないことはわかっていますが、これを適切に行う理由と方法がわかりません)
App.Contributor.reopenClass({
//...
refresh : function(){
App.router.currentState.connectOutlets(App.router);
}.observes('selectedContributor'),
//...
そのような問題を解決する良い方法があることを願っています。不明な点がある場合はコメントを残してください。