Вспомогательные методы контейнера или массива объявляются в описании приложения в массиве props: [ ['name_method
', 'aux'] … ].
В уже созданном компоненте в объекте props их не будет, они будут доступны в объекте methods
контейнера или массива.
this - в методе указывает на компонент (контейнер или массив). Наследуются по тому-же принципу как и обычные свойства.
Пример использования:
container:
form: {
container: "form",
props: ["input", "click", ["test_and_send_name", "aux"] ], ///добавили свойство-вспомогательный метод с типом aux
methods: {
click: function(){
event.preventDefault();
var text = this.parent.props.input.getProp();
this.parent.methods.test_and_send_name(text); // вспомогательные (aux) методы находятся в объекте methods контейнера
console.log(text);
},
test_and_send_name: function(name){ // метод может принимать параметры
///this в методе указывает на контейнер
if(name.length < 2){
alert("имя должно быть больше двух символов");
return;
}
this.rootLink.eventProps["emiter-set-name"].setEventProp(name); // вызвали событие "emiter-set-name" из метода
window.localStorage.setItem('user_name', name);
}
},
},
array:
users_array: {
selector: "div.row",
arrayProps: [ "message",
["send_message", "aux"], //добавили вспомогательный метод
['listen_set_name', "emiter-set-name", ""],
['listen_exit_user', "emiter-exit-user", ""]
],
arrayMethods: {
send_message: function(type, mess){ //вспомогательный метод принимает два параметра
if(type == "login"){
this.props.message.setProp("новый посетитель - "+mess); //this в методе массива указывает на массив
}else if(type == "logout"){
this.props.message.setProp(mess+" - покинул сайт");
}
},
listen_set_name: function(){
this.parent.add( {user_name: this.emiter.getEventProp()} );
this.parent.methods.send_message("login", this.emiter.getEventProp()); //вызвали вспомогательный метод
},
listen_exit_user: function(){
this.parent.data.forEach(container=>{
if(container.props.user_name.getProp() == this.emiter.getEventProp()){
container.remove(true);
}
});
this.parent.methods.send_message("logout", this.emiter.getEventProp()); //вызвали вспомогательный метод
},
},
container: "user",
props: [ "user_name", ],
methods: {
},
},