Javascript 如何正确控制页面中的AngularJS?

Javascript 如何正确控制页面中的AngularJS?,javascript,angularjs,Javascript,Angularjs,第页的div中有一些项目: 在模态块上有一些按钮,我想在控制器块控制器上添加这些按钮,但模态不在可见控制器的边界内 我是否可以将相同的控制器添加到:以在一个控制器中实现公共功能? 我尝试过这样做,但在这种情况下,visible$scope变量遇到了问题: 安吉斯 模板HTML: {{id}} // here is not displayed value 您可以做的一个解决方案是为您的模态使用另一个包含其自身特性的控制器 <div class="modal" ng-controller="

第页的div中有一些项目:

在模态块上有一些按钮,我想在控制器块控制器上添加这些按钮,但模态不在可见控制器的边界内

我是否可以将相同的控制器添加到:以在一个控制器中实现公共功能? 我尝试过这样做,但在这种情况下,visible$scope变量遇到了问题:

安吉斯

模板HTML:

{{id}} // here is not displayed value

您可以做的一个解决方案是为您的模态使用另一个包含其自身特性的控制器

<div class="modal" ng-controller="ModalController"></div>
请注意,如果有许多模态,则必须在模态上使用id 使用不同的控制器

然后,您的代码如下所示:

angular.element($(".modal")).scope(); // returns ModalController's $scope
angular.element($(".modal")).scope().id = "something"; 
html代码:

您可能会发现的另一个问题是,您从BlockController更改了一个变量,即ModalController作用域,如下所示:

angular.element($(".modal")).scope(); // returns ModalController's $scope
angular.element($(".modal")).scope().id = "something"; 
除非调用$apply方法,否则{{id}}绑定将无法工作:


为什么不使用一个包含所有div和modal的全局div,然后你可以在上面添加你的ng controller=BlockController,或者如果你的页面上没有其他控制器,你可以简单地将它放在你的body标签上如果使用全局它是不对的,因为我认为每个控制器都意味着分离功能。另外,我在页面上有一些控制器,所以它看起来就像任何控制器都在BlockController中一样。但正如我看到的,您的模式与您的BlockConroller有关,所以它应该包含在那里,不是吗?我可以创建全局控制器,但知道在任何情况下,当我需要一起使用任何全局控制器时都会出现。模态窗口也有ng控制器。可能使用指令?
<div class="modal" id="modalId" ng-controller="ModalController"></div>
angular.element($("#modalId")).scope(); // returns ModalController's $scope
angular.element($(".modal")).scope().id = "something"; 
angular.element($(".modal")).scope().$apply()