В моем проекте у меня есть проблема вроде. Мне нужно связать хобби пользователя в текстовом поле. Если пользователь приходит с одним хобби, он может прямо войти в хобби, которое у него есть. но когда у него было несколько, то ему пришлось нажимать кнопку добавления нескольких хобби. Это прекрасно работает, когда я динамически показываю поля ввода с помощью директив. Но проблема в том, что значение, которое исходит от ng-модели для этого поля ввода, является обязательным для всех полей ввода,
Вот мой код.
Заранее спасибо!
вот как я получаю
это то, что мне нужно
<div>
<div id="showHobbyfield"></div>
<input type="number" class="form-control" placeholder="ADD HOBBIES"
ng-click="addHoby()">
</div>
$scope.addHoby= function(){
var compiledeHTML = $compile("<div my-hobby></div>")($scope);
$("#showHobbyfield").append(compiledeHTML);
};
$scope.addUser = function(){
$scope.Users= [];
var obj = {
userhobby : $scope.user.morehobies
};
$scope.Users.push(obj);
menuStorage.put($scope.Users);
//menustorage - это сервис для хранения пользователя в localStorage.
'use strict';
angular.module('myApp')
.directive('myHobby', function() {
return {
scope : false,
templateUrl: 'views/my-hobby.html'
};
});
<div class="input-group">
<input type="text" ng-model="user.morehobies" class="form-control" placeceholder="type your hobbies here">
<div class="close-icon">
<span class="glyphicon glyphicon-remove" style="padding-left: 6px;"> </span>
</div>
</div>
Для этого я бы предложил другой способ, если с тобой все в порядке.
Если ваши хобби входят в массив, например
user.morehobies = ['Reading', 'Writing']
или создать массив для хранения хобби.
то внутри директивы вы можете передать этот объект в директиве.
Я буду использовать внутреннюю директиву ng-repeat.
<div class="input-group" ng-repeat="h in hobies">
<input type="text" ng-model="h" class="form-control" placeceholder="type your hobbies here">
<div class="close-icon">
<span class="glyphicon glyphicon-remove" style="padding-left: 6px;"> </span>
</div>
</div>
поэтому всякий раз, когда пользователь нажимает "Добавить хобби", мы можем добавить пустую строку в объект хобби в директиве.
и всякий раз, когда пользователь нажимает на удаление, вы можете удалить этот элемент из массива.
user
? Я имею в виду код контроллера дляmy-hobby
HTML