Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Приивязать модель к новому елементу (https://javascript.ru/forum/angular/59724-priivyazat-model-k-novomu-elementu.html)

dormammun 23.11.2015 21:00

Приивязать модель к новому елементу
 
Доброе время суток.
Подскажите как привязать модель к новому елементу, к примеру:

<div ng-app="myApp">
  <div ng-controller="MainCtrl" id="w">
    <input type="text" ng-model="a" />
    <div>{{a}}</div>
  </div>
</div>


angular.module('myApp', [])
.controller('MainCtrl', function($scope) {
  var tag = angular.element('<input type="text" ng-model="a">');
  $('#w').append(tag);
});


Я добавляю новый инпут, но он не привязан, в в отличие от первого. Или такое делать можно только используя дерективы ?
angular.module('myApp', [])
.directive('myDer', function() {
  return {
    restrict: 'E',
    template: '<input type="text" ng-model="a">'
  }
})
.controller('MainCtrl', function($scope) {
var tag = angular.element('<my-der>');
  
  $('#w').append(tag);
})


2м, способом работает. Но не хочется каждый раз создавать дерективу.
Спасибо.

Shitbox2 25.11.2015 02:21

Разумеется, тут нужно создавать директиву, но только потому что так правильно (работа с домом не должна присутствовать в контроллерах).

В любом случае, чтобы оживить элемент используется $compile
var liveElement = $compile(element)(scope)


В директиве $compile вызывается автоматически


Часовой пояс GMT +3, время: 22:24.