gpt4 book ai didi

javascript - 无法从 Angular Controller 更新标签文本

转载 作者:行者123 更新时间:2023-11-28 18:32:49 24 4
gpt4 key购买 nike

HTML 页面上有一个 anchor 标记和一个选择下拉列表,下拉列表绑定(bind)到 angularjs Controller 的作用域变量。

功能:每当下拉列表的选定值发生变化时,它都应该反射(reflect)在 anchor 标记文本中。

问题:首次初始化 Controller 时,下拉列表中的值已设置,但标签的文本未填充。

代码如下:

Angular 代码:在AController.js中

init = function() {
$scope.month = {'val': ''};
// some intermediate code which populates month

$("#element-id").val($scope.month.val);

var i = $("#element-id").closest(".element-panel");
var t = i.find(".element-label");
t.text(element.children(":selected").text());
}

init();

HTML 页面:

<div class="element-panel">
<a class="select-label element-label" id="">Month</a>
<select id="element-id" ng-model="month.val">
<option value="" style="display:none;"></option>
<option value="1">January</option>
<option value="2">February</option>
<!-- more options ... -->
<option value="12">December</option>
</select>
</div>

最佳答案

这是一个工作 fiddle .

HTML:

<a class="select-label element-label" ng-model="label">{{selected.label}}</a>
<select id="element-id" ng-model="selected" ng-options="opt.label for opt in months">

Controller :

$scope.months = [
{id: '1', label: "January"},
{id: '2', label: "February"},
{id: '3', label: "December"}
];
$scope.selected = {label: 'Month'};

避免在 Controller 中使用 jQuery。 DOM 操作应该在其他地方处理(指令等)。

关于javascript - 无法从 Angular Controller 更新标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658166/

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