Я пытаюсь запустить функцию, которая является частью объекта данных, который я передаю RactiveJS при заполнении шаблона. Я пробовал несколько других библиотек, но не могу найти то, что ищу. Вот описание того, что я делаю, и я надеюсь, что кто-то может предложить библиотеку для выполнения того, что я пытаюсь сделать.
Служба передает моему приложению объект JSON, который выглядит примерно так
var data = {
"users": {
"Aaron": {
"age": "31",
"level": "legit",
"talk": function(){
console.log("Howdy! I'm " + this.level);
}
},
"Pete": {
"age": "30",
"level": "godlike",
"talk": function(){
console.log("Howdy! I'm " + this.level);
}
}
}
};
Мой шаблон кажется правильным. Как указано в Документация
var usersTemplate = "<ul>{{#users:name}}<li><a href='#' on-click='talk'>{{name}} says:</li>{{/users}}</ul>";
Затем я создаю новый экземпляр Ractive
var people = new Ractive({
el: "#userlist",
template: usersTemplate ,
data: data
});
Проблема в том, что щелчок по каждому пользователю на самом деле ничего не сделает, потому что RactiveJS, похоже, так не работает. Он обрабатывает такие события, как это.
people.on({
talk: function(evt){
evt.original.preventDefault();
console.log("I clicked on the template");
}
});
Что я пытаюсь сделать, так это запустить функцию action
внутри объекта данных, который я передал, при этом контроллер не знает, как называется метод. Достаточно указать его в шаблоне и в объекте данных.
Ractive дает достаточно информации, чтобы я мог пройтись по объекту данных, но этого недостаточно.
people.on({
talk: function( evt ) {
evt.original.preventDefault();
var pointer = json_output;
var path = evt.keypath.split(".");
for( var i = 0; i < path.length; i++){
console.log(i);
pointer = pointer[path[i]];
}
if(pointer.hasOwnProperty("action") && typeof(pointer.action) === "function") {
pointer.action(evt);
}
}
});
Разве RactiveJS не подходит для этой работы? Заранее благодарю за помощь в поисках.
proxy events
часть документов?event.context
о чем вы спрашиваете? - person vittore   schedule 31.07.2014