帽子是我如何拥有多个值,我将继续发送以继续像客户可以创建用户。
我在此处找到了它:https://stackoverflow.com/a/14520103/7180653(将对象数组作为输入数据)
我基于他的代码,这就是我应该只拥有真实的知识值。
当我看着我的按钮时。所以我得到错误:
数组[0]
TypeError:无法读取属性' map'未定义的
html - 查看:
<ul style="list-style-type:none;">
<li class="col-md-4" ng-repeat="Value in ColorAddUppers">
<img ng-src="{{Value.Image}}" class="img-responsive img-rounded mb-lg" />
<p class="label label-lg label-primary full-width">
<input type="checkbox"
ng-model="Value.selected"
name="selectedColorUppers[]"
value="{{Value.IDColor}}" />
{{Value.Text}}
</p>
</li>
</ul>
CreateUser.js
var url = "/JsonClass/ColorAddToUppers";
$http.get(url).success(function (response) {
$scope.ColorAddUppers = response;
});
//Overdel
$scope.NextLvlThree = function () {
//Check Color Values
$scope.selectionColorUppersView = [];
$scope.selectedColorUppers = function selectedColorUppers() {
return filterFilter($scope.ColorAddUppers, { selected: true });
};
$scope.$watch('fruits|filter:{selected:true}', function (nv) {
$scope.selectionColorUppersView = nv.map(function (ColorNameUppersText) {
return ColorNameUppersText.Text;
});
}, true);
console.log($scope.selectionColorUppersView);
}
EIDT(更新)
当我看这张照片时,它似乎没有得到我的价值。
我在代码中使用了这个:
$scope.selectedTextValuesByWatch = [];
$scope.$watchCollection('ColorAddUppers|filter:{selected:true}', function (nv, ov) {
$scope.selectedTextValuesByWatch = nv.filter(function (value) {
return value.selected;
}).map(function (value) {
return value.Text;
});
}, true);
$scope.getSelectedTextValues = function () {
return $scope.ColorAddUppers.filter(function (value) {
return value.selected;
}).map(function (value) {
return value.Text;
});
}
console.log($scope.selectedTextValuesByWatch);
if($scope.selectedTextValuesByWatch.length >= 1)
{
console.log("check");
}
else
{
console.log("error");
}
答案 0 :(得分:0)
我不确定何时调用NextLvlThree()
函数,但$watch
的声明应该在控制器级别而不是在此函数内部以避免多次声明。
无论如何,有几种方法可以在列表中获取所选值:
在视图中使用动态过滤器,例如应将选择值显示为json:
<pre>{ColorAddUppers|filter:{selected:true}|json}}</pre>
使用会更新所选列表的手表,该列表仅包含每个值的Text
:
$scope.$watchCollection('ColorAddUppers|filter:{selected:true}', function (nv, ov) {
$scope.selectedTextValuesByWatch = nv.filter(function (value) {
return value.selected;
}).map(function(value) {
return value.Text;
});
}, true);
或者只使用与手表进行相同过滤的功能,但是当用户点击某个按钮时:
$scope.getSelectedTextValues = function() {
return $scope.ColorAddUppers.filter(function(value) {
return value.selected;
}).map(function(value) {
return value.Text;
});
}
查看this plunker here中的所有3个操作。