2013-10-01 2 views
1

Мне нужно, чтобы иметь возможность динамически создавать объекты параметров в угловых, которые имеют следующий вид:Угловое - Создание карты объекта

[ 
    password: {type: 'String', required: true, value: 'apassword'}, 
    someRandomParam: {type: 'Integer', required: false, value:3} 
] 

Я знаю, как связать с этим для того, чтобы отобразить значения в списке или таблицы, но я не знаю, как построить этот объект со связями в Angular, в первую очередь при создании ключа («пароль»), так как эти клавиши также создаются динамически.

ответ

0

Я предполагаю, что вы имели в виду, имеющие объект, а не массив (ваш код будет генерировать SyntaxError), как это:

$scope.params = { 
    password: {type: 'String', required: true, value: 'apassword'}, 
    someRandomParam: {type: 'Integer', required: false, value:3} 
}; 

Это правда, что вы можете привязать к нему, даже используя ngRepeat. Но добавление чего-то к этому объекту требует чего-то большего, чем просто простого связывания. Создайте несколько входов на ваш взгляд:

<input type="text" ng-model="newParamName" /> 
<input type="text" ng-model="newParam.type" /> 
<input type="checkbox" ng-model="newParam.required" /> 
<input type="text" ng-model="newParam.value" /> 
<input type="button" ng-click="addParam(newParamName, newParam)" value="Add me!" /> 

... и в контроллере:

$scope.addParam = function(name,param){ 
    $scope.params[name] = angular.copy(param); 
}; 
+0

Как бы то удалить его из HashMap в случае необходимости? – Shannon

+0

Следуйте той же схеме - создайте ввод, чтобы ввести имя параметра, кнопки и функции 'delParam (name)' с 'delete $ scope.params [name];' в нем. – lort

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