gpt4 book ai didi

javascript - 无法以编程方式在 Angular JS 中的 SELECT 元素上使用 2 路绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 09:25:47 26 4
gpt4 key购买 nike

我很难让两种方式绑定(bind)适用于 SELECT 元素。我正在尝试以编程方式更改所选元素。我找到了几个用于绑定(bind) SELECT 的更改事件的 Stackoverflow 示例,但我并没有找到很多相反的方法,即应用程序代码更改所选元素。

我发现有一些在 OPTION 元素上使用 ng-repeat 但我 a) 无法让它工作,b) 似乎不是“Angular Way” .

HTML 代码:

<div ng-controller="SIController">
<select id="current-command" ng-model="currentCommand"
ng-options="c as c.label for c in availableCommands track by c.id"></select>
<button ng-click="changeSelectedOption()">Select "open"</button>

Controller 代码:

var myApp = angular.module('myApp', []);

function SIController($scope) {

$scope.availableCommands = [
{id: 'edit', label: 'Edit'},
{id: 'open', label: 'Open'},
{id: 'close', label: 'Close'}
];

$scope.currentCommand = "close";
$scope.changeSelectedOption = function() {
$scope.currentCommand = 'open';
};
};

我可以验证单击按钮时 $scope.currentCommand 正在更改,但选项似乎没有被选中。

Fiddle here

最佳答案

有工作 fiddle 吗:http://jsfiddle.net/bzhkkw18/9/

为了解释我所做的事情,ng-click 和 Controller 中的函数名称不匹配。

主要部分是您的选项的定义。在您的 ng-options 中设置 all 对象。如果这是您真正想要的,您必须在 currentCommand 中执行相同的操作,如下所示:

//Object 2 is close
$scope.currentCommand = $scope.availableCommands[2];

关于javascript - 无法以编程方式在 Angular JS 中的 SELECT 元素上使用 2 路绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com