2013-08-27 5 views
3

пытается написать функцию редактирования рядного без использования шаблона, как описано здесь http://plnkr.co/edit/EsW7mV?p=previewКак сделать встроенное редактирование в angularjs без шаблона?

+0

Это может помочь понять, чего вы пытаетесь достичь, написав свою директиву без шаблона? Есть несколько способов обойти это (шаблон, вероятно, лучший способ, однако), но, не зная, чего вы пытаетесь достичь, я не знаю, какой подход показать. –

+0

Итак, что нам здесь делать? – BKM

+0

Шаблон - лучший способ, я согласен. Но когда у нас есть динамические значения, шаблон оказывается большой проблемой. Так что я ищу, это пример встроенного редактирования, который не использует шаблон. Надеюсь это поможет. –

ответ

6

Вы можете просто разместить код шаблона на главной странице.

<li ng-repeat="todo in todos" inline-edit="todo.title" on-save="updateTodo(todo.title)" on-cancel="cancelEdit(todo.title)"> 
    <div> 
    <input type="text" on-enter="save()" on-esc="cancel()" ng-model="model" ng-show="editMode"> 
    <button ng-click="cancel()" ng-show="editMode">cancel</button> 
    <button ng-click="save()" ng-show="editMode">save</button> 
    <span ng-mouseenter="showEdit = true" ng-mouseleave="showEdit = false"> 
    <span ng-hide="editMode" ng-click="edit()">{{model}}</span> 
    <a ng-show="showEdit" ng-click="edit()">edit</a> 
    </span> 
    </div> 
</li> 

Здесь есть скрипка:

http://jsfiddle.net/siliconball/QwDn9/2/

Также temeber забрать templateUrl: 'inline-edit.html'

Если вам нужен объем контроллера для какого-либо причине места scope: false в директиве. Но тогда вам придется отслеживать, какой вариант вы редактируете в любой момент (возможно, используя идентификатор). Если это ваша ситуация, я предлагаю реорганизовать немного, как вы знаете, вероятно, это не самый лучший вариант.

Если ваша ситуация, я думаю, это то, что вы хотите написать все на одной странице, потому что вы генерируете ее через CGI или динамический контентный скрипт, и вы не хотите писать один и тот же код на разных страницах (+ скрипты интерфейсов ...), то я предлагаю также переместить inline-edit="todo.title" и все директивы в <div> ради ортогональности.

+3

Любая идея, почему это больше не работает с Angular 1.2. *? – isset

+0

У всех их есть 'ng-model =" model "', я не понимаю, почему он поддерживает несколько редактирования в то же самое? –

 Смежные вопросы

  • Нет связанных вопросов^_^