Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于ngOptions跟踪的问题_Javascript_Angularjs_Ng Options - Fatal编程技术网

Javascript 关于ngOptions跟踪的问题

Javascript 关于ngOptions跟踪的问题,javascript,angularjs,ng-options,Javascript,Angularjs,Ng Options,我对使用ngOptions创建的AngularJs选项/选择器有一些问题。我的问题是它不会触发我在ngChange中使用的方法。我发现这是因为在actionList中name属性不是唯一的。因此,如果我改变,使他们是唯一的,它将按预期工作。然而,我希望他们的名字和现在一样 因此,我想我可以尝试类似于在ctrl.actionList中按action.value跟踪action中的动作的ng options=“action.name”。但它不起作用。有人能帮我吗 HTML <select id

我对使用
ngOptions
创建的AngularJs选项/选择器有一些问题。我的问题是它不会触发我在
ngChange
中使用的方法。我发现这是因为在
actionList
name
属性不是唯一的。因此,如果我改变,使他们是唯一的,它将按预期工作。然而,我希望他们的名字和现在一样

因此,我想我可以尝试类似于在ctrl.actionList中按action.value跟踪action中的动作的
ng options=“action.name”
。但它不起作用。有人能帮我吗

HTML

<select id="someOptions" class="dropdown dropdown-md"
    ng-model="ctrl.settingAction"
    ng-change="ctrl.onChangeAction()"
    ng-options="action.name for action in ctrl.actionList">
</select>
JS

public onChangeAction(): void {
    console.log(this.settingAction);
}

您似乎正在使用“controller as”语法。您能否确认正在vm/self中设置
onChangeAction()
函数,如下所示

var vm = this;
vm.onChangeAction = function (): void {
    console.log(this.settingAction);
}
演示
angular.module('myApp',[]).controller('myCtrl',function($scope){
var ctrl=this;
这是行动清单=[{
“姓名”:“跑步者”,
“值”:“运行”
}, {
“姓名”:“跑步者”,
“值”:“跳转”
}];
this.onChangeAction=函数(){
警报(this.settingAction.value);
}
});


没错,我刚刚减少了零件数量,因此我只需突出显示我有问题的零件,如果有帮助,则标记编辑是否有效,但是在我的生产代码中,它是相同的,但不起作用。因此,我还没有完全准备好将其标记为已解决:/
var vm = this;
vm.onChangeAction = function (): void {
    console.log(this.settingAction);
}