Сделать ярлык редактируемым по нажатию кнопки - Sproutcore
Я очень новичок в ростке. Хотя я знаю о SC.InlineEditable
Mixin и isEditable
поле, проблема в том, когда я нажимаю на кнопку, чтобы сделать labelView
редактируемые. Ярлык остается прежним, и мне нужно дважды щелкнуть ярлык, чтобы ввести текст.
Что я хочу, это когда я нажимаю на кнопку редактирования, метка должна превратиться в текстовое поле и стать первым респондентом, то есть курсор должен мигать на текстовом поле.
Я не мог найти приличную документацию (sproutcore не очень помог) или учебник, чтобы сделать это. Ссылки на такие ссылки также будут очень полезны.
2 ответа
Согласно витрине, вы должны быть в состоянии сделать это следующим образом:
SC.LabelView.extend({
classNames: ['my-label-view'],
isEditable: true,
layout: { width: 300, height: 16, centerX: 0, centerY: 0 },
value: 'Double-click this label to edit inline.'
})
Если это не работает, можете ли вы сказать нам, какую версию SC вы используете и какой браузер / версию? Это может быть потенциальная ошибка.
Мне кажется, что включение меток - это другое состояние в вашем приложении. В этом случае лучше всего связать действие кнопки с диаграммой состояний. Итак, вы сначала создаете контроллер со свойством isEditing, которое имеет значение false (по умолчанию).
myApp.myController = SC.Controller.create({
isEditing: false;
});
Теперь вы создаете функцию в текущем состоянии, которая вызывается действием на кнопку. Это приведет к переходу в состояние РЕДАКТИРОВАНИЕ, которое устанавливает для свойства isEditing значение true в enterState и false в exitState.
Я не знаю наизусть, как вы можете связать состояние редактирования представления метки с этим свойством isEditing, но, предполагая, что это возможно, вы можете таким образом контролировать состояние редактирования всех полей одновременно, и вы будете Знайте наверняка, что все поля также будут возвращены в нормальное состояние после завершения редактирования.