Javascript angularjs ng单击运行时标记不起作用
ng click事件适用于设计时html控件,但不适用于运行时控件。可能是因为在这种情况下,ng click事件超出范围 HTML代码Javascript angularjs ng单击运行时标记不起作用,javascript,angularjs,Javascript,Angularjs,ng click事件适用于设计时html控件,但不适用于运行时控件。可能是因为在这种情况下,ng click事件超出范围 HTML代码 <div ng-controller="AccordionDemoCtrl"> <label class="checkbox"> <button class="btn btn-small" ng-click="addItem()">Add Item</button> <
<div ng-controller="AccordionDemoCtrl">
<label class="checkbox">
<button class="btn btn-small" ng-click="addItem()">Add Item</button>
<input type="checkbox" ng-model="oneAtATime" />Open only one at a time</label>
<accordion close-others="oneAtATime">
<accordion-group heading="{{group.title}}" ng-repeat="group in groups">{{group.content}}</accordion-group>
</accordion>
<button class="btn btn-small" onclick="f()" >Click</button>
<div id=name>
</div>
添加项
一次只打开一个
{{group.content}
点击
Javascript代码
var app = angular.module('myapp', ['ui.bootstrap']);
function AccordionDemoCtrl($scope) {
$scope.oneAtATime = true;
$scope.groups = [{
title: "Dynamic Group Header - 1",
content: "Dynamic Group Body - 1"
}, {
title: "Dynamic Group Header - 2",
content: "Dynamic Group Body - 2"
}];
$scope.addItem = function () {
$scope.groups = [{
title: "Dynamic Group Header - 4",
content: "Dynamic Group Body - 4"
}, {
title: "Dynamic Group Header - 5",
content: "Dynamic Group Body - 5"
}];
};
}
function f()
{document.getElementById("name").innerHTML = "<button id='btn2' ng-click='addItem()'>add d item</button>";}
var-app=angular.module('myapp',['ui.bootstrap']);
函数AccordionDemoCtrl($scope){
$scope.oneAtATime=true;
$scope.groups=[{
标题:“动态组标题-1”,
内容:“动态组正文-1”
}, {
标题:“动态组标题-2”,
内容:“动态组正文-2”
}];
$scope.addItem=函数(){
$scope.groups=[{
标题:“动态组标题-4”,
内容:“动态组正文-4”
}, {
标题:“动态组标题-5”,
内容:“动态组正文-5”
}];
};
}
函数f()
{document.getElementById(“name”).innerHTML=“添加d项”;}
AngularJS通常不会解析运行时使用DOM添加到页面中的HTML,因此它不会自动捕获angular指令在页面中的使用。但是,您可以在修改页面以重新分析页面后执行显式调用。看看:考虑一下这个
不要动态生成要解析的元素,而是在HTML中创建它。使用ng show或ng hide动态显示或隐藏节
这是一种甚至在本课程中使用的技术,它解决了一个类似的问题。角度的重点是让您编写声明性和动态HTML。因此,您不应该强制从JavaScript生成它。虽然您可能没有使用JQuery,但这个答案可能会帮助您:这是一个糟糕的做法,您到底想做什么?我看到您正在使用accordion演示用于angular uii。我想通过更新$scope.groups variablem从web api json数据生成这些选项卡。任何人都会指出,如果您的页面不是很复杂,那么在使用AngularJS时,您不必直接修改DOM。=)考虑使用NG IF和NG重复。