我的角色体验基本上是大约3天兼职,所以我可能会在这里找到一些简单的东西。
我试图根据数组创建多个输入的动态列表,然后我想从应用程序的其他地方引用它。我尝试过的是从自定义指令加载模板,然后$compile
加载它。
<input data-ng-repeat="term in query" data-ng-model="term">
我的控制器包含$scope.query = [""]
,它成功创建了第一个空输入框。但是当我修改它时,输入框似乎没有更新$scope.query[0]
。这意味着当我尝试使用$scope.query.push("");
创建另一个空输入框时(来自keypress
侦听器寻找&#34; /&#34;键)我得到一个&#34;重复项不是允许&#34;错误。
我已尝试手动收听输入并根据其值更新scope.$query
,但这并没有感觉到非常“有角度”,并导致奇怪的行为。
我需要做些什么来链接这些值。我是沿着正确的路线离开的吗?
答案 0 :(得分:2)
我做了一个简单的jsfiddle,展示了如何使用角度模型(服务)来存储数据。修改文本输入也将修改模型。要在应用中的其他位置引用它们,您可以在其他控制器中包含TestModel
。
HTML:
<body ng-app="TestApp">
<div ng-controller="TestController">
<div ng-repeat="item in queries track by $index">
<input type="text" ng-model="queries[$index]" />
</div>
<br/><br/>
<button ng-click="getVal()">Get Values</button>
</div>
</body>
的javascript:
var app = angular.module('TestApp',[]);
app.controller('TestController', function($scope, TestModel)
{
$scope.queries = TestModel.get();
$scope.getVal = function()
{
console.log(TestModel.get());
alert(TestModel.get());
}
});
app.service('TestModel', function()
{
var queries = ['box1','box2','box3'];
return {
get: function()
{
return queries;
}
}
});