Javascript 使用angularJS以编程方式更改模板源代码
我有一段简单的代码,根据我在此处单击的按钮,用适当的模板替换ng include标记: 我想做的是用javascript函数而不是Angular的HTML helper标记复制ShowPage2内容按钮的相同行为。Javascript 使用angularJS以编程方式更改模板源代码,javascript,angularjs,Javascript,Angularjs,我有一段简单的代码,根据我在此处单击的按钮,用适当的模板替换ng include标记: 我想做的是用javascript函数而不是Angular的HTML helper标记复制ShowPage2内容按钮的相同行为。 关于上面链接的Plunker,我希望第三个按钮与第二个按钮完全相同,但此行为应在onClickHandler函数中执行,以代替警报。如果我理解正确,您希望从角度世界之外更改角度。您可以这样做: function onClickHandler() { var appElement
关于上面链接的Plunker,我希望第三个按钮与第二个按钮完全相同,但此行为应在onClickHandler函数中执行,以代替警报。如果我理解正确,您希望从角度世界之外更改角度。您可以这样做:
function onClickHandler() {
var appElement = document.querySelector('[ng-app=plunker]');
var appScope = angular.element(appElement).scope();
appScope.template = 'page2';
appScope.$apply();
}
我不知道你为什么想要这样,但有一种方法可以实现 JS 如果您使用的是jQuery,那么可以直接使用$main而不是angular.element。在angular.element中,我们只需要使用DOM元素。我们不能使用ID选择器或类选择器,因为它已被angular从jqlite中删除。
您的示例非常简单,如果我错了,请更正,但我想您在现实世界中尝试的是使用第三方js应用程序来更改该模板,是吗?如果是这样的话,请让我们知道,这样我们就可以从更角度来解决这个问题。
function onClickHandler() {
var appElement = document.querySelector('[ng-app=plunker]');
var appScope = angular.element(appElement).scope();
appScope.template = 'page2';
appScope.$apply();
}
function onClickHandler() {
var ele = document.getElementById("main");
angular.element(ele).scope().template='page1';
angular.element(ele).scope().$apply();
}