我试图以某种方式将以下模型的属性绑定到控制器,以便在模型完成其异步调用时设置模型的长度属性,然后通知控制器发生更改并可以更新视图。
App.Articles = Ember.Object.extend()
App.Articles.reopenClass
store: {}
lengths: 0
findAll: ->
arr = Ember.ArrayProxy.create()
$.ajax
url: 'http://ajaxcall.asp',
dataType: 'json'
context: @
success: (response) ->
Ember.set(App.Articles, 'lengths', response.store.length)
response.store.forEach (news, i) =>
txt = '<p>' + news.fields[2].text.replace(/[\r\n]+(?=[^\r\n])/g,'</p><p>') + '</p>'
article =
'id': i
'date': news.fields[1].date
'title': news.fields[0].text
'text': txt
'short': news.fields[2].text.substring(0, 120) + '...'
art = @findOne(article.id)
art.setProperties(article)
return
values = (values for keys, values of @store)
arr.set('content', values)
callback = ->
$('.loader-container').removeClass('show')
$('#articles-scroll').css('height', $(window).height() - 55)
articles_scroll = new iScroll 'articles-scroll',
vScroll: true, hScroll: false, vScrollbar: false
return
setTimeout callback, 100
return
arr
findOne: (id) ->
art = @store[id]
if not art
art = App.Currencies.create
id: id
@store[id] = art
art
所以我需要完成的是设置调用完成后返回的数据的长度,并在控制器中监听该更改,如下所示:
lengths: (->
console.log 'test'
).property('App.Articles.lengths')
但是,我对上面的代码没有运气,我不确定如何解决这个问题。