Angularjs 如何使角度为动态添加的对象工作
我有两个文件,如下所述。我正在文件_1.php中定义控制器 在文件_2.php中,我“要求”文件_1.php,然后将ul移动到文件_1.php中描述的div中 我希望能够做到的是——让控制器中的函数为动态添加的ul工作。我的猜测是,当加载页面时,ul块被视为在控制器外部,因此它不工作。在搜索时,我能够看到一个涉及$compile的模型,但它适用于ng模型,而不适用于repeat或{{}。我是新来的,非常感谢您的帮助 文件_1.phpAngularjs 如何使角度为动态添加的对象工作,angularjs,Angularjs,我有两个文件,如下所述。我正在文件_1.php中定义控制器 在文件_2.php中,我“要求”文件_1.php,然后将ul移动到文件_1.php中描述的div中 我希望能够做到的是——让控制器中的函数为动态添加的ul工作。我的猜测是,当加载页面时,ul块被视为在控制器外部,因此它不工作。在搜索时,我能够看到一个涉及$compile的模型,但它适用于ng模型,而不适用于repeat或{{}。我是新来的,非常感谢您的帮助 文件_1.php <?php <div id="box_1"
<?php
<div id="box_1" ng-controller="MyCtrl"></div>
?>
<?php
require 'file_1.php';
?>
<ul>
<li ng-repeat="item in items">item.text</li>
</ul>
{{items}}
<script>
function MyCtrl($scope) {
$scope.items = [{text: "Item 1", text: "Item 2"}];
}
$(document).ready(function() {
$('#box_1').append($('ul'));
})
</script>
文件_2.php
<?php
<div id="box_1" ng-controller="MyCtrl"></div>
?>
<?php
require 'file_1.php';
?>
<ul>
<li ng-repeat="item in items">item.text</li>
</ul>
{{items}}
<script>
function MyCtrl($scope) {
$scope.items = [{text: "Item 1", text: "Item 2"}];
}
$(document).ready(function() {
$('#box_1').append($('ul'));
})
</script>
- item.text
{{items}}
函数MyCtrl($scope){
$scope.items=[{文本:“项目1”,文本:“项目2”}];
}
$(文档).ready(函数(){
$('#box_1')。追加($('ul');
})
我找到的一些信息:
在这里,在“编译/链接分离背后的原因”一节中,他们解释了为什么ng repeat的编译不同。有人能解释一下它的确切含义和/或方法吗?我试着编译-任何不在ng repeat中的东西都可以工作,但ng repeat中的任何东西都不行。您是否出于某种原因而执着于此文件结构?你试图做的事情与棱角的纹理背道而驰,因此将是一种痛苦。Angular应该可以让您从使用jQuery操作DOM的痛苦中解脱出来 不过,似乎使用
$compile
应该可以工作。你能告诉我们你想用它做什么吗
为什么你不能做这样的事
<div id="box_1" ng-init="items = [{text: "Item 1", text: "Item 2"}]">
<ul>
<li ng-repeat="item in items">{{item.text}}</li>
</ul>
{{items}}
</div>
- {{item.text}
{{items}}
(在
nginit
上语法可能有点不正确)在控制器中操作DOM不是一种好的做法。除此之外,$scope.$apply()是否有帮助
我认为你应该用指令来做这类事情。事实上,你能解释一下你到底想在这里做什么吗?我的意思是为什么要这样做?我有一些内容是通过php生成的,还有一些内容是静态html。php在多个html文件中重复使用。控制器就在那里。你有没有考虑过在#box#u 1中包含ul?我不能使用ng include inside#box#u 1,因为我在文件#2中加载#box#u 1,而不是以其他方式加载#box#u 1,这不应该是
{item.text}
?我这样做的原因是因为我在多个文件中使用“require”重用文件#1.php,就像在文件#2中一样,例如文件_1的内容是通过php生成的,但在所有文件中都很常见。因此,我无法初始化文件_1中可能在文件_2中使用但在文件_3中不使用的任何内容。是的,我意识到Angular不能与DOM操作结合使用。