0

我敢肯定这很简单,但是对于 JS 和 Ember 的新手来说,我已经够难过两天了。初始值来自 API 作为 model.status (int)。但是我的 init() 代码不会导致选择控件显示该项目。为什么不?如果有更好的方法可以做到这一点,请告诉我。提前致谢!

这是我的 HTML:

{{view Ember.Select id='selectUserStatus'  
  content=selectUserStatus  
  optionValuePath="content.val"
  optionLabelPath="content.label"
  value=status
  selectionBinding="selectedUserStatus"
  prompt="Select a status"}}

这是JS:

App.UserController = Ember.ObjectController.extend({

init: function() {
  var selVal = this.get('model.status');
  this.set('selectedUserStatus',[this.get('selectUserStatus')[selVal-1]]);
},

selectUserStatus: [
   {label:"Guest", val:"1"},
   {label:"Registered",val:"2"}, 
   {label:"Editor",val:"3"}, 
   {label:"Administrator",val:"4"},
],
....
4

1 回答 1

0

最好能提供一个 jsFiddle 或 jsBin。但是,通过查看您的代码,我会建议以下内容:

{{view Ember.Select id='selectUserStatus'  
  content=userStatusList  
  optionValuePath="content.val"
  optionLabelPath="content.label"
  value=status
  selectionBinding="selectedUserStatus"
  prompt="Select a status"}}

这是JS:

App.UserController = Ember.ObjectController.extend({

  init: function() {
    var selVal = this.get('model.status');
    this.set('selectedUserStatus',[this.get('selectUserStatus')[selVal-1]]);
  },

  userStatusList: [
    {label:"Guest", val:"1"},
    {label:"Registered",val:"2"}, 
    {label:"Editor",val:"3"}, 
    {label:"Administrator",val:"4"},
  ],
}

这是一个 jsBin:http: //jsbin.com/xawak/3/

于 2014-02-14T23:17:53.570 回答