Я очень новичок в Durandal, но думаю, что это отличная структура, учитывая мой опыт работы с jQuery и немного KnockoutJS, однако я столкнулся с двумя разными методами использования RequireJS с Durandal.
В примерах Durandal используется следующий синтаксис: Durandal / App /образцы/модальные/index.js
define(['durandal/app', './customModal'], function (app, CustomModal) {
return {
showCustomModal: function() {
app.showModal(new CustomModal()).then(function(response) {
app.showMessage('You answered "' + response + '".');
});
}
};
});
Здесь зависимости/требования (это правильное слово здесь?) определены как первый аргумент вызова для определения (['durandal/app', './customModal']
).
В документации Durandal используется следующий синтаксис:Создание модуля
define(function(require){
var backend = require('backend');
return {
customers:ko.observableArray([]),
activate:function(){
var that = this;
return backend.getCustomers().then(function(results){
that.customers(results);
});
}
};
});
Здесь только функция передается вызову для определения с требованием в качестве зависимости/требования этой функции. Затем вызывается функция require, чтобы получить фактическую зависимость/требование (var backend = require('backend');
), которая необходима.
Исходя из фона .net IoC, первый кажется правильным, определите мои требования и позвольте инфраструктуре requirejs найти зависимости для меня, а второй кажется анти-шаблоном локатора службы.
Верна ли моя интерпретация этих двух методов, следует ли использовать первый, а документация неверна(!)?
Если нет, каковы плюсы/минусы этих двух методов? Какой из них целесообразно использовать и почему?
Большое спасибо