Javascript 动态HTML内容不是用vanillaJS代码生成的

Javascript 动态HTML内容不是用vanillaJS代码生成的,javascript,html,angularjs,Javascript,Html,Angularjs,在下拉列表中选择不同的值(使用鼠标)时,会动态生成不同的HTML输入元素(按钮、输入字段等) document.getElementsByTagName('select')[2].selectedIndex = 5; 这些HTML输入元素(按钮、输入字段等)不会生成 该站点位于angular1.xVanillaJS的更改不会触发AngularJS的$digest循环,因此AngularJS不知道selectedIndex的更改值 为了触发循环,添加$scope.$apply(),例如: doc

在下拉列表中选择不同的值(使用鼠标)时,会动态生成不同的HTML输入元素(按钮、输入字段等)

document.getElementsByTagName('select')[2].selectedIndex = 5;
这些HTML输入元素(按钮、输入字段等)不会生成


该站点位于angular1.x

VanillaJS的更改不会触发AngularJS的$digest循环,因此AngularJS不知道selectedIndex的更改值

为了触发循环,添加
$scope.$apply(),例如:

document.getElementsByTagName('select')[2].selectedIndex = 5;
$scope.$apply();
也就是说,您并没有真正遵循AngularJS的良好实践。 为了以编程方式为selectedIndex选择一个值,您应该更改下拉列表的模型值

例如,您会有一个带有
ng model
的下拉列表

<select ng-model="selectedIndex">
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
</select>

请添加相关代码请添加代码。。。所以我们可以帮助你:-)我们需要所有相关的代码…你能添加负责生成HTML元素的代码吗?因为这是一个不起作用的部分。这是一个预构建的网站,我正在运行我的脚本,所以不能提供生成动态HTML元素的代码。看起来你在AngularJS之外操作AngularJS元素,这是行不通的。您可能应该更新ng模型,而不是直接更新元素的
selectedIndex
app.controller("ctrl", function ($scope) {
    $scope.changeSelection = function (index) {
        $scope.selectedIndex = index;
    }
});