我是ember js技术的新手。我在ember应用程序中遇到了一些问题。我的ember应用程序中有一些文件如下(部分代码如下): -
sample.hbs
<div>
<div>
{{text-field id="countryid" type="text"}}
</div>
{{state-component model=model}}
</div>
状态component.hbs
{{#if isFlag}}
<div>
{{text-field id="stateid" type="text"}}
</div>
{{else}}
{{/if}}
状态component.js
var flag;
export default Ember.Component.extend({
isFlag: Ember.computed('flag', function() {
flag = this.get('model').get('flag');
return Ember.isEqual(flag, 'true');
})
})
sample.js
export default Ember.Route.extend({
model(){
return info.create({"flag": ""})
}});
afterModel(){
Ember.$.ajax({
url: `${ENV.host}/retrieveInfo`,
type: 'POST',
data: `id=geoid`,
success: (data) => {
this.modelFor('sample').setProperties({
"flag": data.flag
});
}
}
此处页面加载retrieveInfo ajax调用发生&amp;该标志从webservice调用返回。基于标志值,即如果为真,那么只有我必须显示状态文本框。但是,由于页面呈现第一个和下一个ajax调用发生,我没有页面加载的标志值。即,当呈现状态组件时,它不包含标志值。我已经在诸如willRender(),didRender()之类的不同事件中移动了ajax调用。但它没有帮助。有人能解决吗?我可以在哪里放置ajax调用,以便我可以在我的state-component中获取标志值?
答案 0 :(得分:0)
始终用代码询问您尝试过的问题。如果可能,请包括ember-twiddle复制。通过这种方式,您无法创建名为component1
的组件,因为它应包含-
。
在官方ember-guides
上仔细阅读在示例路径的模型钩子中定义它,它将在settings.hbs中可用。
model(){
return Ember.$.getJSON('url');
}
您可以将模型发送到my-component
,并且可以在my-component
中访问。
{{my-component model=model }}