1

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 アプリのように単純に機能し、ユーザーが React の場合と同様にフォークできるように jsFiddle または CodePen の例にリンクすることは理にかなっていると思います。

4

2 に答える 2

1

pages配列であるため、代わりに変数参照である必要がある呼び出しがいくつかありました。これが修正です:http://jsfiddle.net/jug68s27/4/

ctrl.pages()->ctrl.pages

pages().push(pages().shift())->pages.push(pages.shift())

于 2015-03-16T04:14:54.600 に答える