Javascript-执行HTML/include
我正在使用AngularJS设计一个用于搜索的小应用程序。我有一个当前为空的div,在运行一个函数后,它将替换为一个包含ng include的div。div替换得很好,但是ng include没有加载 我目前正在console中运行以下内容进行测试,以查看它是否正在运行。我该怎么做才能让它发挥作用呢?感谢您的帮助Javascript-执行HTML/include,javascript,angularjs,Javascript,Angularjs,我正在使用AngularJS设计一个用于搜索的小应用程序。我有一个当前为空的div,在运行一个函数后,它将替换为一个包含ng include的div。div替换得很好,但是ng include没有加载 我目前正在console中运行以下内容进行测试,以查看它是否正在运行。我该怎么做才能让它发挥作用呢?感谢您的帮助 document.getElementById("resultsDiv").innerHTML = '<div ng-include="" src=" \'sr.html\' "
document.getElementById("resultsDiv").innerHTML = '<div ng-include="" src=" \'sr.html\' "></div>';
document.getElementById(“resultsDiv”).innerHTML='';
阅读有关angularjs$compile函数的内容我不知道为什么需要进行此JavaScript调用,但绝对不是“角度方式”。如果需要有条件地包含html,我建议使用ng If
、ng hide
、ng show
甚至ng开关
你可以这样做:
// somewhere in your controller
$scope.triggerSomeInclude = true;
// in your template
<div ng-if="triggerSomeInclude">
<div ng-include ="'someFile.html'"></div>
</div>
//控制器中的某个地方
$scope.triggerSomeInclude=true;
//在模板中
另一种方法是使用指令。它们是唯一可以直接选择元素的地方(尽管即使在那里,通常也不需要通过id选择元素)。但正如我所说的,很难确定最好的方法是什么,因为我不确定你想要实现什么
虽然您没有使用jQuery,但当您直接选择一个似乎完全脱离angular的$digest和$compile循环的元素时,您尝试执行的操作看起来非常jQueryesque(糟糕的单词),因此我还建议您阅读以下答案:
最后,我使用的方法是为ngInclude使用的示例创建模板
http://docs.angularjs.org/api/ng.directive:ngInclude
例如,在我的控制器内,默认情况下,它将设置以下内容:
$scope.mainDivTemplate = {url: 'partials/test1.html'}
如果我想把它切换到其他地方,我会调用一个看起来有点像这样的函数
$scope.loadHome = ->
$scope.mainDivTemplate = {url: 'partials/home.html'}
$scope.$apply()
我读了几遍,但是我没有看到在点击一个按钮后编译的有效方法(它将运行我的函数并最后编译)。你能举个例子吗?