Tôi có thẻ neo như thế nàyĐi qua các tham số để một hàm trong knockoutjs ViewModel
<a href="#" class="btn btn-success order-btn" data-bind="attr:{'data-tiername':$data.tierName, 'data-identifier' : $parent.identifier}, click: $root.setPath.bind($data,$data.tierName, $parent.identifier)">Send values</a>
Trong viewmodel
var appViewModel = {
setPath: function (data, tier, identifier) {
alert(data);
alert(tier);
alert(identifier);
},
...........
...........
}
Kết quả là một số knockoutjs mã lõi được hiển thị trong thông điệp cảnh báo (có thể định nghĩa về các hàm có thể quan sát(), dependObservable() và [Object object] rỗng khi được cảnh báo với JSON.stringify)
tại sao tính năng này hoạt động?
data-bind="attr:{'data-tiername':$data.tierName, 'data-identifier' : $parent.identifier}
nhưng không này:
click: $root.setPath.bind($data,$data.tierName, $parent.identifier)
lưu ý rằng tierName là một quan sát được(), nhận dạng được tính()
Tôi có thể tìm thêm về ràng buộc đâu() ??
tôi muốn thực hiện 'alert (tầng); alert (identifier); 'trong chức năng viewmodel của tôi, tôi đã không thực sự muốn bối cảnh (điều này). Vì vậy, chức năng của tôi đã trở thành 'setPath (tier, identifier)' Cảm ơn bạn đã giúp đỡ – nthapa13
KO không thêm một thực hiện 'bind' nếu nó không có sẵn, vì vậy nếu bạn đang tham chiếu KO, thì bạn an toàn để sử dụng' bind'. –
Cảm ơn bạn RP Niemeyer, nó là tốt để biết. –