我在初始化应用程序时遇到问题。我创建了 jsfiddle,它只适用于我的桌面,但不适用于 jsfiddle。
我希望你能抓住这个想法。
在我的应用程序开始时,我必须从休息和值中获取一些值到 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'),
//...
我希望有一些好的方法来解决这样的问题。如果有不清楚的地方请发表评论。