为什么我的角度选项无法按 ID 跟踪
why isn't my angular options track by id working
我确定我一定做错了,但是:
我有一个存储项目 id 的对象。 我也有一系列这些项目。 我需要有一个"选择"来表示当前选定的项目,但它也可以更改所选项目。
我已经将"选择"模型设置为对象.selectId。"选择"ng选项是"选项"。选项中的选项文本按选项ID跟踪">
然而,模型和"选择"选项类型不匹配
我如何实现我需要的?
这是我正在做的事情的小提琴:https://jsfiddle.net/vb2xe1mc/5/
法典:
<script>
angular.module('myApp', [])
.controller('myctrl', ['$scope', function($scope) {
$scope.item = {
id: 1
};
$scope.options = [
{Text: "zero", Id: 0},
{Text: "one", Id: 1},
{Text: "two", Id: 2},
{Text: "three", Id: 3}
];
$scope.selectChange = function() {
alert($scope.item.id);
};
}]);
</script>
<div ng-app="myApp">
<div ng-controller="myctrl">
<select ng-model="item.id" ng-options="option.Text for option in options track by option.Id" ng-change='selectChange()'>
</select>
</div>
</div>
如果可以,请让我知道我哪里出错了或纠正小提琴。
谢谢 ^_^安 迪
澄清:模型项的 ID 已选定 1。在这种情况下,我需要列表来预先选择 id 为 1 的选项。此外,选择该选项时,它不会将 item.id 设置为 int,而是将其设置为整个选项项。 我需要它将 item.id 设置为该选项。编号
<select ng-model="item.id" ng-options="option.id as option.Text for option in options" ng-change='selectChange()'>
您要选择option.id
,而不是option
,并且不需要track by
。
将选择绑定到ng-model="item"
,而不是ng-model="item.id"
。
还要决定id
与 Id
<div ng-app="myApp">
<div ng-controller="myctrl">
<select ng-model="item" ng-options="option.Text for option in options track by option.Id" ng-change='selectChange()'>
</select>
</div>
</div>
angular.module('myApp', [])
.controller('myctrl', ['$scope', function($scope) {
$scope.item = {
Id: 1
};
$scope.options = [{
Text: "zero",
Id: 0
}, {
Text: "one",
Id: 1
}, {
Text: "two",
Id: 2
}, {
Text: "three",
Id: 3
}, ];
$scope.selectChange = function() {
console.log ($scope.item.Id)
alert($scope.item.Id);
};
}]);
有关固定版本,请参阅此处:https://jsfiddle.net/ax3k418p/
> https://jsfiddle.net/vb2xe1mc/10/
您需要将item
绑定到ng-model
,并且初始$scope.Id
应设置为1
而不是$scope.id = 1
还要检查何时发出警报,它应该alert($scope.item.Id);
<div ng-app="myApp">
<div ng-controller="myctrl">
<select ng-model="item" ng-options="option.Text for option in options" ng-change='selectChange()'>
</select>
</div>
</div>
.JS:
angular.module('myApp', [])
.controller('myctrl', ['$scope', function($scope) {
$scope.item = {
Id: 1
};
$scope.options = [{
Text: "zero",
Id: 0
}, {
Text: "one",
Id: 1
}, {
Text: "two",
Id: 2
}, {
Text: "three",
Id: 3
}, ];
$scope.selectChange = function() {
alert($scope.item.Id);
};
}]);
相关文章:
- Deezer电台:电台没有跟踪id
- 解析 /page.xhtml 时出错:跟踪错误[行: 42] 与元素类型“id”关联的属性“{1}”应使用左引号
- 从页面上的谷歌分析跟踪代码获取帐户ID
- asp.net 数据列表中的跟踪标签 ID
- Piwik:如何跨域(PHP/JS)跟踪访问者(用户ID)
- 如何使用JavaScript函数验证Google Analytics跟踪id
- 如何使用Google Analytics Dimensions在多个表单页面上跟踪用户ID
- 如何在谷歌跟踪代码管理器 noscript 标签中参数化容器 id
- 为什么我的角度选项无法按 ID 跟踪
- 如何在jquery中跟踪最后三个点击的ID
- 使用某种ID跟踪拖放图像
- Google Analytics(分析)跟踪 ID 是否会从其他网域发送数据
- 跟踪按钮 ID 和单击按钮事件
- 通过ID工作进行ng重复跟踪,如何在ng重复中过滤
- 谷歌分析跟踪代码与用户ID
- 通过用户ID跟踪用户登录
- 谷歌分析(使用相同跟踪ID的屏幕视图和页面视图)
- opencart跟踪会话id
- 我能够在其他网站上重复使用相同的跟踪ID的谷歌分析
- Google Analytics -如何在用户提交表单时跟踪登录用户的ID