如果调用是从控制器中的操作进行的,如何将端点数据保存在模型存储中
How to save the endpoint data in model store if call is made from actions in controller
我使用 ember-modal-dialog 创建了一个对话框。将要显示在对话框中的内容是从服务器接收的。我能够调用服务器并获取数据。但是我不知道如何将数据从操作中保存到我的模型存储中。
Controller.js
actions:{
fiModal1: function(photo){
Ember.$('body').addClass('centered-modal-showing');
var currentState = this;
photo.toggleProperty('fidialogShowing'))
console.log('opendialog');
raw({
url: 'http://example.co.in/api/photo/'+photo.get('like_pk')+'/likes/',
type: 'GET',
}).then(function(result){
currentState.set('model.feed.liker',result)
});
},
bookmarked:function(liker){
liker.set('is_bookmarked',true)
},
}
feed.hbs
<p {{action "fiModal" photo }}>
{{photo.0.numlikes}}
</p>
{{#if photo.fidialogShowing}}
{{#modal-dialog translucentOverlay=true close = (action "fiDialogClose" photo)}}
{{#each model.feed.liker as |liker}}
<div class = "col-sm-6">
{{#if liker.is_bookmarked}}
<a href {{action "unbookmarked" liker}}>
<img class="foll" src = "images/button-bookmark-secondary-state-dark-b-g.png">
</a>
{{else}}
<a href {{action "bookmarked" liker}}>
<img class="foll" src = "images/button-bookmark.png">
</a>
{{/if}}
</div>
{{/each}}
现在的问题是,当对话框内的操作被触发时,它会抛出一个错误:
fiver.set is not function
我认为出现问题是因为我没有将结果保存在模型商店中。我应该怎么做才能使对话框内的操作也起作用?
您可以将服务器的结果封装到 Ember.Object
Ember.Object.create(json)
例如更换你的线路
currentState.set('model.feed.liker',result)
来自
currentState.set('model.feed.liker', result.map(function(item) {
return Ember.Object.create(item);
})
这样 model.feed.liker 中的每个元素都应该有一个方法 'set' 可用。
我使用 ember-modal-dialog 创建了一个对话框。将要显示在对话框中的内容是从服务器接收的。我能够调用服务器并获取数据。但是我不知道如何将数据从操作中保存到我的模型存储中。
Controller.js
actions:{
fiModal1: function(photo){
Ember.$('body').addClass('centered-modal-showing');
var currentState = this;
photo.toggleProperty('fidialogShowing'))
console.log('opendialog');
raw({
url: 'http://example.co.in/api/photo/'+photo.get('like_pk')+'/likes/',
type: 'GET',
}).then(function(result){
currentState.set('model.feed.liker',result)
});
},
bookmarked:function(liker){
liker.set('is_bookmarked',true)
},
}
feed.hbs
<p {{action "fiModal" photo }}>
{{photo.0.numlikes}}
</p>
{{#if photo.fidialogShowing}}
{{#modal-dialog translucentOverlay=true close = (action "fiDialogClose" photo)}}
{{#each model.feed.liker as |liker}}
<div class = "col-sm-6">
{{#if liker.is_bookmarked}}
<a href {{action "unbookmarked" liker}}>
<img class="foll" src = "images/button-bookmark-secondary-state-dark-b-g.png">
</a>
{{else}}
<a href {{action "bookmarked" liker}}>
<img class="foll" src = "images/button-bookmark.png">
</a>
{{/if}}
</div>
{{/each}}
现在的问题是,当对话框内的操作被触发时,它会抛出一个错误:
fiver.set is not function
我认为出现问题是因为我没有将结果保存在模型商店中。我应该怎么做才能使对话框内的操作也起作用?
您可以将服务器的结果封装到 Ember.Object
Ember.Object.create(json)
例如更换你的线路
currentState.set('model.feed.liker',result)
来自
currentState.set('model.feed.liker', result.map(function(item) {
return Ember.Object.create(item);
})
这样 model.feed.liker 中的每个元素都应该有一个方法 'set' 可用。