2013-04-25 2 views
0

У меня есть объект модели, определенный как этотинстанцированиих объектов с requireJS

blog.js 

define({title: '', url: '', summary: ''}); 

Я использую blog модель для хранения данных от службы, и мне нужно, чтобы заполнить массив blogs. Как создать новый blog в цикле в другом модуле?

Я пробовал передать в blog как объект, требующий, но он поддерживает его ссылку внутри цикла, оставляя массив одного и того же объекта снова и снова.

othermodule.js 

define(['blog'], function(blog) { 
//... more code 
    $.each(data, function(index, b) { 
    var tmpBlog = blog; 
    //... 
    list.push(tmpBlog); 
    }); 
}); 

Я также попытался использовать var blog = require('blog'); получая тот же результат.

Как мне создать экземпляр объекта блога с помощью requirejs?

ответ

0

ОК, я понял. Я неправильно определил модель blog. Мне нужно возвращать function blog(){...} вместо примерно так:

define(function() { 
    return function blog() { 
    var self = this; 
    this.title = ''; 
    //... 
    }; 
}); 

и другой модуль используется так:

define(['models/blog'], function (model) { 
    var tmpBlog = new model(); 
    tmpBlog.title = 'some title'; 
} 
+0

да как раз собирался опубликовать это. [Этот вопрос] (http://stackoverflow.com/questions/4869530/requirejs-how-to-define-modules-that-contain-a-single-class) дает намного больше информации о подходе. – explunit

Смежные вопросы