Сделать ярлык редактируемым по нажатию кнопки - 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, но, предполагая, что это возможно, вы можете таким образом контролировать состояние редактирования всех полей одновременно, и вы будете Знайте наверняка, что все поля также будут возвращены в нормальное состояние после завершения редактирования.

Другие вопросы по тегам