0
我的茉莉花測試用於通過。但是,我實現了一個基礎骨幹視圖,該視圖提供了幾個常見視圖的功能。在此之後,我無法通過下面的簡單測試。看起來DOM元素(div)不存在,因此我的show view沒有正確渲染。任何想法或建議,爲什麼這是發生和解決辦法?茉莉花/骨幹
兩個骨幹觀點,一種擴展超出其他的:
var stockShowView = Base.extend({
tagName: 'div',
className: 'showSecurity',
template: _.template(showTpl),
....
render: function() {
this.$el.html(this.template({
stock: this.model.toJSON()
}));
}
....return stockShowView;
var Base = Backbone.View.extend({
initialize: function() {....//no render function
茉莉花測試
stock_showView = new stockShowView({model: model});
stock_showView.render();
expect(stock_showView.tagName).toEqual('div');
錯誤
Cannot read property 'length' of undefined
路由器
router.on('route:showPost', function(id) {
if (globals.stocks) {
var stockpost = new StockModel({_id: id});
stockpost.fetch({
reset: true,
success: function(stockpost) {
var stock_showView = new stockShowView({model: stockpost});
$("#view_box").html(stock_showView.render().el);
}
});
沒有完整的代碼是不可能告訴的。分享更多,最好在jsFiddle –
是的,你是對的。但是,這是很多代碼。我想我的主要問題是調用.render(),如上所述,是茉莉花浸入到渲染功能的基本視圖,而不是stockShowView的明確性?它使用Backbone的路由器,因爲我有一個if語句(添加到問題)?或者它只是試圖渲染stock_showView? – snewc