我有这段代码,我看不出问题的根源在哪里,我在控制器的chrome控制台中没有收到任何错误:
function notifController($scope) {
$scope.refreshMsgs = function () {
$.post("notification-center-trait.aspx")
.success(function (data) {
$("#loadedthings").html(data);
newMsgs = JSON.parse($("#label1").html());
$scope.msgs = newMsgs;
});
}
$scope.refreshMsgs();
}
label1
并label2
正确加载到div加载的东西中;
控制台中的newMsgs会按照应有的方式进行解析;
我有它适用于其他页面,但似乎我错过了这个页面上的东西。我有<html ng-app>
标签:
<div ng-controller="notifController">
<div class="row">
{{msgs.length}} new msgs :
<table class="table">
<tbody >
<tr ng-repeat="msg in msgs">
<td>
{{msg.sender}}
</td>
<td>
{{msg.message}}
</td>
<td>
{{msg.date}}
</td>
</tr>
</tbody>
</table>
</div>
</div>
执行此命令时,我在控制台中得到“未定义”: angular.element($0).scope()
忽略我在评论中指出的其他体系结构问题,真正的问题是您使用jQuery
的是ajax
而不是Angular的$http
。当您不通过Angular做类似的事情时,您就在Angular的范围之外工作,并且它不知道更改。虽然不理想,但您可以$scope.$apply
用来让angular知道某些超出其知识范围的更新。看起来像这样:
$scope.$apply(function() {
$scope.msgs = newMsgs;
});
这告诉Angular,您已经修改了它需要从其不了解的上下文中了解的某些信息(在本例中为jQuery ajax调用)。
有一些有效的用法$scope.$apply()
,例如在事件处理程序中,但是在大多数情况下,这是不良做法的标志。您绝对应该使用Angular
$http
进行ajax调用。
我有这段代码,我看不出问题的根源在哪里,我在chrome控制台我的控制器中没有发现任何错误: 和在div-loadedthings中正确加载; 控制台中的newMsgs按照它应该的方式进行解析; 我让它为其他页面工作,但似乎我错过了这一页上的一些东西。我有
我是新来的Spring应用程序。我试图创建小Spring应用程序,但我得到404错误消息。似乎控制器(indexController)没有开始调用。我累了调试,但它不在那里。 文件位置: /WebContent/WEB-INF/pages/index.html /WebContent/WEB-INF/HelloWebServlet。xml /WebContent/WEB-INF/web.xml H
问题内容: 我需要从指令中的父控制器继承范围。我不一定要离开范围:false。我也不一定要使用孤立的作用域,因为要获得我确实关心的值正确链接(需要在父控制器中考虑很多值),就需要大量的工作。 如果要更新父范围,在我的指令中使用是否有意义? 请检查小提琴 问题答案: 尽管@user1737909已经引用了SO问题来阅读(AngularJS中范围原型/原型继承的细微差别是什么?它将解释该问题并建议各种
问题内容: 运行期间是否可以注入示波器或控制器?或任何其他建议将服务动态注入控制器? 提前致谢 问题答案: 可以使用$ injector 将服务动态(按名称)注入到控制器中。能够通过控制器参数注入服务只是Angular提供的一种便利。在后台,Angular使用$ injector来检索对象实例。但是我们也可以自己使用$ injector。 小提琴。
我尝试注入$scope,然后使用,但这不起作用? 有人能提供建议吗?
问题内容: 尽管在ChildCtrl中实例化了一个“新”变量,我如何进行变量更改并将其轻松传播回ParentCtrl?加分点数最少,甚至没有$ on和$ watch(使其更易于实现) ParentCtrl ChildCtrl / ChildCtrl2 / ChildCtrl3 / ChildCtrl4 视图 我的ChildCtrl的区别就足够大了,我无法轻松抽象出主布局和ng-view,但是它们都