[英]mithril hello world MVC example not working
我在使Mithril hello world MVC示例工作時遇到困難。
這是從Mitrhil主頁復制的代碼。 請注意,我所做的唯一更改是交換了m.request({method: "GET", url: "pages.json"});
對手動生成的頁面對象的方法調用。
//namespace
var app = {};
//model
app.PageList = function() {
var pages = [];
pages.push({title: 'page 1', url: '/page1.html'});
pages.push({title: 'page 2', url: '/page2.html'});
return pages;
};
//controller
app.controller = function() {
var pages = app.PageList();
return {
pages: pages,
rotate: function() {
pages().push(pages().shift());
}
}
};
//view
app.view = function(ctrl) {
return [
ctrl.pages().map(function(page) {
return m("a", {href: page.url}, page.title);
}),
m("button", {onclick: ctrl.rotate}, "Rotate links")
];
};
//initialize
m.module(document.getElementById("example"), app);
如您所見,上面我在jsFiddle中的示例不起作用,但是在另一個Mitrhil示例中,todo應用程序jsFiddle可以正常工作。
我認為,基本的MVC Mitrhil示例可以像Todo應用一樣工作,並且可以鏈接到jsFiddle或CodePen示例供用戶進行分叉,這與React中的示例類似。
有一些對pages
調用應該是變量引用,因為它是一個數組。 解決方法如下: http : //jsfiddle.net/jug68s27/4/
ctrl.pages()
-> ctrl.pages
pages().push(pages().shift())
-> pages.push(pages.shift())
在此示例中,該值不會重繪,因為您沒有使用m.prop ,如果希望更改值,則可以使用var pages = m.prop('');
現在您可以使用pages().push
或ctrl.pages().map
因為m.prop是一個函數! 請記住,這非常重要,您會經常使用它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.