Я создал файл шаблона home.html
для моего домашнего вида с формой в нем:
<form class="adform">
<input type="button" id="addcompareitem" class="addcompareitem" value="Add compare item" />
</form>
Это код моего домашнего вида:
var HomeView = Backbone.View.extend({
initialize: function() {
item1.disableCompareBtn();
},
render : function(){
this.$el.html(homeTemplate);
}
});
return HomeView;
Здесь метод disableCompareBtn
:
this.disableCompareBtn = function(){
if(compareitems == null || compareitems.length < 2){
$('#addcompareitem').prop('disabled', true);
console.log(1);
}
};
Проблема: при инициализации домашнего представления кнопка все еще активируется, но работает console.log(1).
Любая идея, что вызвало это. Благодарю.
Похоже, вы запускаете деактивацию до того, как HTML существует. Моя ставка заключается в том, что если вы console.log($('#addcompareitem'))
вы не получите никаких элементов, возвращаемых вам. Вместо этого попробуйте отключить кнопки сразу после запуска this.$el.html(homeTemplate)
.
Просто для ясности, инициализация вызывается, когда что-то построено, а затем вы вызываете render на построенный объект.