我有一个 ember 对象,例如:
App.Obj = Ember.Object.extend({});
和一个控制器:
App.myController = Ember.Controller.extend({});
问题是我可以myController
从App.Obj
对象访问吗?如果是怎么办?
场景是:
1)我有这样创建的模型:
OlapApp.Measure = Ember.Object.extend({});
OlapApp.Measure.reopenClass({
measure:Ember.A(),
find:function(cubeUniqueName){
var c = Ember.A();
var xhr = $.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: 'http://localhost:9095/service.asmx/getMeasures',
data: '{"cubeUniqueName":"'+cubeUniqueName+'"}',
success: function(response) {
var data = JSON.parse(response.d);
$.each(data,function(i,v) {
c.pushObject(OlapApp.Measure.create(v));
});
}
});
return c;
},
findByUniqueName:function(un){
}
});
2)我有下拉列表,当下拉列表的选择索引更改时调用 setMeasure ,因此我为每个控制器设置模型:
OlapApp.CubeController = Ember.ArrayController.extend({
needs:['application','measure','dimenssion'],
content:[],
selectedValue:'',//this is the buffer for the select
realValue:'',//this is the real value
setMeasure:function(name){
this.get('controllers.measure').set('model',OlapApp.Measure.find(name));
this.get('controllers.dimenssion').set('model',OlapApp.Dimenssions.find(name));
},
actions:{
refreshCubes:function(){
this.set('model','');
this.set('model',OlapApp.Cubes.findAll());
}
}
});
3)现在我用这个模型创建了一个项目列表。我希望当用户单击此项目中的任何一个时,我将项目的 uniqueName 发送到 OlapApp.Measure.findByUniqueName() 并在此方法中获取模型并在模型中搜索以找到正确的记录。此时我有 2 个问题,我无法获取模型,我不知道如何在模型中搜索。我试着用你的方式,我有一些问题
- 我有 ArrayController,使用 Ember.ArrayController.create() 时出现错误
如果您问自己为什么我使用这种方式而不是 ember 方式,您可以在我的问题中找到一些信息