에 정의되어 있지 않습니다. 이 기능은 버튼을 활성화 또는 비활성화하는 데 사용됩니다. 컬렉션의 첫 번째 항목의 경우을 처리하지만 두 번째 경우에는 다음 오류와 함께 실패합니다. 컬렉션의 모든 CategoryModel이보기 좋습니다. 사용 가능 마크 업을 사용하면 컬렉션이 예상대로 렌더링됩니다.녹아웃 계산 된 속성은 내가 <strong>가</strong> 계산 방법을 CanCategoryBeDeleted이 <strong>의 모음 CategoryModel</strong> 이상 (foreach는 확장 드래그 플러그인)을 정렬 열거있어 두 번째 반복
Uncaught ReferenceError: Unable to process binding "sortable: function (){return { data:categories,afterMove:$root.orderCategories} }" Message: Unable to process binding "enable: function(){return CanCategoryBeDeleted }" Message: CanCategoryBeDeleted is not defined
마크 업입니다
<div data-bind="sortable: { data: categories, afterMove: $root.orderCategories }">
<div class="mb20">
<div class="well well-sm moveCursor">
<div class="fl">
<span data-bind="visible: !$root.isCategorySelected($data)">
<a href="#" title="Edit name" data-bind="text: Name, click: $root.selectedCategory"></a>
</span>
<span data-bind="visibleAndSelect: $root.isCategorySelected($data)">
<input data-bind="value: Name, event: { blur: $root.clearCategory }" class="form-control" />
</span>
</div>
<div class="fr">
<button class="btn btn-xs btn-danger" data-bind="click: $root.deleteCategory, enable: CanCategoryBeDeleted">Delete category</button>
</div>
<div class="clear"></div>
</div>
forum stuff here...
</div>
</div>
모델은 다음과 같이이다 :
function CategoryModel(data) {
var self = this;
self.Id = ko.observable(data.Id);
self.Created = ko.observable(data.Created);
self.IsPersisted = ko.observable(data.IsPersisted);
self.Name = ko.observable(data.Name);
self.Order = ko.observable(data.Order);
self.Forums = ko.observableArray(data.Forums);
self.CanCategoryBeDeleted = ko.computed(function() {
console.log("CanCategoryBeDeleted...");
if (self.Forums().length == 0) {
console.log("should enable");
return true;
}
console.log("should not enable");
return false;
}, self);
}
사람이 내가 잘못 알고 있나요?
아마도 JSFiddle에서 단순화 된 repro를 만들 수 있습니까? – nemesv
제공 한 코드에 오류가 발생하지 않는 것은 없습니다. 또한 나는 "두 번째 것"이 의미하는 것을 정말로 이해하지 못합니다. 'sortable'에서'foreach'로 변경해보고 차이가 있는지 살펴볼 수 있습니까? –
나는 바이올린을 만들었습니다 : http://jsfiddle.net/Amethi/cLLey9by/4/ Michael, 배열의 첫 번째 항목을 렌더링하지만 두 번째 배열 항목에서 오류가 발생합니다. 나는 foreach와 가진 놀이가있을 것이다. – Amethi