以ng重复生成随机模型名称



在我的angular.js项目中,我有一个包含输入字段的循环

<input type="text" ng-model="myColour">
<div ng-repeat="c in colors">
    <input type="text" ng-model="colour">
    <a href ng-click="asd(colour)">Click</a>
</div>

当用户点击输入字段旁边的"点击"链接时,我想访问控制器中的输入字段来设置/获取该字段值。以下是我的控制器代码

$scope.colors = [
    {id: 1, name: 'black', shade: 'dark'},
    {id: 2, name: 'white', shade: 'light'},
    {id: 3, name: 'red', shade: 'dark'},
    {id: 4, name: 'blue', shade: 'dark'},
    {id: 5, name: 'yellow', shade: 'light'}
];
$scope.asd = function(data){
    console.info(data);
    console.info($scope.myColour);
    console.info($scope.colour);
};

这给了我

colour input field data
my colour input field data
undefined 

在这里,如果"颜色"模型在视图中重复,我就无法访问它。所以我尝试生成随机模型名称(将c.id与模型中的颜色连接起来(,我尝试了几种方法来实现这一点,但没有成功。

有没有一种方法可以生成随机的ng模型名称?

有什么方法可以访问点击"点击"链接的输入字段的模型吗?

试试这样的东西:

<div ng-repeat="c in colors">
    <input type="text" ng-model="c.colour">
    <a href ng-click="asd(c.colour)">Click</a>
</div>

带有JS:

// your collection
$scope.colors = [
    {id: 1, name: 'black', shade: 'dark'},
    {id: 2, name: 'white', shade: 'light'},
    {id: 3, name: 'red', shade: 'dark'},
    {id: 4, name: 'blue', shade: 'dark'},
    {id: 5, name: 'yellow', shade: 'light'}
];
// add a new key called 'colour' on your colors which will be the model
angular.forEach($scope.colors, function(value, key){
   $scope.colors[key]['colour'] = ""; // match node in html
});

最新更新