1

データ属性に対してattributeBindingを実行しようとしています。

これが開始フィドルですhttp://jsfiddle.net/EsF4R/43/バインドされていませんが、文字列の値を取得するだけ'App.DateView.endDateString'です。

App = Ember.Application.create({});
App.CalendarController= Em.Controller.extend();
App.CalendarView = Em.View.extend({
   templateName: 'calendar',
   attributeBindings: ['data-date'],
   'data-date': 'App.DateView.endDateString',  
});

App.DateView = Em.View.extend({
    endDateString: '7/7/2012' /* This actually is a function */
});

'data-date'バインドしたい'App.DateView.endDateString'

使ってみました

'data-date' : function(){
            Em.Binding('App.CalendarView["data-date"]','App.DateView.endDateString');
            return '1/1/1988';
            }.property().cacheable(),

しかし、動作しませんでした。

4

3 に答える 3

1

それがViewインスタンスであると仮定するとApp.DateView、つまり

App.DateView = Em.View.create({ // notice that create() is called
    endDateString : '7/7/2012' 
});

以下が機能するはずです。

'data-dateBinding' : 'App.DateView.endDateString',

または、次を使用することもできます(ただし、実際には必要ありません)。

'data-date': function(){
    return App.DateView.get('endDateString');
}.property('App.DateView.endDateString')
于 2012-07-11T22:21:44.987 に答える
1

プロパティをパスにバインドする場合はBinding、プロパティ名に追加する必要があるため、http ://jsfiddle.net/pangratz666/tV2Zq/'data-dateBinding': 'path.to.date'を参照してください。

App = Ember.Application.create({
    dateString: '7/7/2012'
});

App.CalendarView = Em.View.extend({
    attributeBindings: ['data-date'],
    'data-dateBinding': 'App.dateString'
});​
于 2012-07-11T23:27:45.793 に答える
0

私は次のようなことをすることになりました

'data-date' : function(){
        return App.get('router').get('dateController').get('endDate');
        }.property('App.router.dateConroller.endDateString','App.router.currentState.name').cacheable(),

私の問題に対するより良い解決策があるかどうかわかりません

于 2012-07-16T02:36:26.820 に答える