我們正在使用牽線木偶,並且爲$(document).ready()函數中的模板中存在的元素提供動作。我想知道是否有一種首選的方式來實現它 - 即將其移入模型或應用程序範圍內的某個位置。Backbone.Marionette - 連接頁面動作的最佳方式
簡單的例子
<script type="text/template" id="menu">
<a href="javascript:void(0)" class="index-link">
</script>
MyApp.module("Entities", function (Entities, MyApp, Backbone, Marionette, $, _) {
Entities.MenuModel = Backbone.Marionette.Model.extend({});
});
MyApp.module("Views", function (Views, QaApp, Backbone, Marionette, $, _) {
Views.MenuView = Backbone.Marionette.ItemView.extend({
template: "#menu"
});
});
$(document).ready(function() {
$(window).load(function() {
$("html, body").animate({ scrollTop: $(document).height() }, 750);
});
$(".index-link").on("click", function(e) {
$.ajax({
url: "/someurl",
type: 'POST',
contentType: 'application/json; charset=utf-8',
success: function (result) {
if (result.Status == false)
console.warn(result.Message);
},
error: function (result) {
console.warn(result.Message);
}
});
});
});
在這個例子中,我能看到窗口滾動功能無關我的模型,所以它看起來不錯,但不應該採取的措施通過在元素觸發了我模板在相關視圖內,尤其是如果成功函數可能返回我的模型需要的數據?
感謝您的期待!
我並不是說我認爲視圖模型應該進入模型。我相信它是在視圖中,而不是在隨機頁面函數中出現 - 我對模型的引用更多地是關於視圖上採取的操作可能是影響底層模型的ajax函數的事實(因此更有理由不應該連接骨幹應用程序範圍外)。我認爲,在你的例子中,itemView事件位是我所追求的。謝謝! – sydneyos