如何设置可观察属性而不对其进行任何订阅射击?设置knockout.js可观察属性而无需订阅射击
我有一个场景是页面加载,ajax调用是为了获取一些数据,数据是循环播放,然后将当前选定的项目设置为可观察。我希望能够在没有任何订阅的情况下设置这个observable,因为第一次设置这个observable被认为是它的初始状态,并且订阅不应该在初始状态下执行。
function PlanViewModel() {
var self = this;
self.plans = ko.observableArray();
self.selectedItem = ko.observable();
self.getAllPlans = function() {
$.ajax({
url: "/Backoffice/Home/GetAllPlans",
type: "POST",
data: {},
context: this,
success: function (result) {
var planList = this.plans;
// clear the plan list
planList.removeAll();
$.each(result.plans, function() {
var planDetail = new PlanDetail(this, self);
if (this.IsSelected) {
self.selectedItem(planDetail); // how do I set this without the subscriptions firing?
}
planList.push(planDetail);
});
},
error: function (result) {
alert("An error occured getting plans.");
}
});
}
self.selectedItem.subscribe(function (newItem) {
newItem.repositoryUpdateSelectedPlan();
} .bind(self));
}
半天在类似的问题..我已经移动一行几行下来: - ] thx – nilphilus