2014-09-21 2 views
1

Предположим, что у меня есть следующий angularjs шаблонRendering Angularjs шаблона внутри контроллера

<script type="text/ng-template" id="tmp"> 
<li>  
{{firstname}} {{lastname}}</li> 
</script> 

и у меня есть два текстовых полей и сохранить кнопки как

<input name="firstname" type="text"/> 
<input name="lastname" type="text"/> 
<button name="save" text="save"/> 

, когда пользователь вводит значения в ПгвЬЫате и LastName текстовых полей и нажмите на кнопке сохранения Я хочу, чтобы эти два значения были переданы в шаблон, и полученный html должен быть добавлен к существующему ul. Как я могу сделать это с угловым?

+0

вы хотите открыть модальное окно? – V31

+0

Нет, я просто хочу, чтобы значения, введенные в форме, были переданы в шаблон каким-то образом, а полученный html шаблона должен быть добавлен к существующему элементу 'ul', который присутствует на странице. –

+0

вы можете изменить состояние и передать значения этому контроллеру состояния с помощью служб или в качестве параметров состояния (если вы используете ui-router) – V31

ответ

1

Вы можете создать директиву, чтобы динамически скомпилировать ваш шаблон и добавить его к ul, когда кто-то нажал кнопку сохранения, но это в основном целая цель ng-repeat.

Вот как это может работать с ng-repeat вместо:

angular.module('main', []); 
 

 
angular.module('main').controller('MainCtrl', function ($scope) { 
 
\t $scope.names = []; 
 
    
 
\t $scope.save = function() { 
 
\t \t $scope.names.push({first: $scope.firstname, last: $scope.lastname}); 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="main" ng-controller='MainCtrl'> 
 

 
    <input name="firstname" type="text" ng-model='firstname'/> 
 
    <input name="lastname" type="text"ng-model='lastname'/> 
 
    <button name="save" text="save" ng-click='save()'>save</button> 
 
    
 
    <ul> 
 
    \t <li ng-repeat='name in names'>{{name.first}}  {{name.last}}</li> 
 
    </ul> 
 
</div>

+0

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

+0

Ну, у вас есть массив, в котором вы сохраняете результаты, поэтому вам нужны только некоторые элементы пользовательского интерфейса, которые позволяют выполнять некоторые функции '$ scope', которые изменяют элементы в этом массиве. Я предлагаю использовать директивы 'ng-click', чтобы связать это. – bmceldowney

+0

действительно не понял. Но я попробую. Большое спасибо –

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