드롭 다운 값이 변경되면 구독하려고했습니다. 나는 다음과 같은 논리를 가지고 있지만 작동시키지 못합니다.녹아웃 구독이 작동하지 않습니다.
HTML
<div id="[email protected]" data-caseid="@modelItem.CaseID" class="row hidden popovercontainer pinBinding">
<select data-bind="options:userPins,
value:selectedPin,
optionsCaption:'-- please select --',
optionsText: 'Name',
optionsValue: 'Id'"></select>
</div>
JS 드롭의 값이 웹 사이트의 다른 부분에 의존 같이 userPins 배열은 서버에 AJAX 호출에 의해 채워
function UserPinViewModel(caseId) {
var self = this;
self.selectedPin = ko.observable();
self.userPins = ko.observableArray([]);
self.caseId = caseId;
self.selectedPin.subscribe(function (newValue) {
console.log(newValue);
//addCaseToPin(newValue, self.caseId);
});
}
var pinObjs = [];
$(function() {
pinObjs = [];
$(".pinBinding").each(function() {
var caseId = this.getAttribute("data-caseid");
var view = new UserPinViewModel(caseId);
pinObjs.push(view);
ko.cleanNode(this);
ko.applyBindings(view, this);
});
})
드롭 다운의 값을 변경할 수 있습니다. 여기서는 배열을 채우는 데 사용한 논리를 사용합니다.
function getPins() {
$.ajax({
type: 'POST',
url: '/Home/GetPins',
success: function (data) {
for (var i = 0; i < pinObjs.length; i++) {
pinObjs[i].userPins(data);
}
},
error: function (request, status, error) {
alert("Oooopppppsss! Something went wrong - " + error);
}
});
}
내가 수동으로 드롭 다운을 변경하지만 때마다 서버에서 반환 된 것을 모든 변화가 일치하도록 드롭 다운의 실제 값은 구독 이벤트는 트리거되지 않습니다.
그래서 console.log에서 아무 것도 얻지 못합니까? 바이올린을 게시 할 수 있습니까? – DevelopmentIsMyPassion
그것은 여기에서 작동합니다 https://jsfiddle.net/kyr6w2x3/39/ –
예 - 나는 너무 똑같은 논리로 바이올린에서 격리로 작업하고 있지만, 기본 응용 프로그램에서는 작동하지 않습니다. –