【发布时间】:2014-07-20 13:02:30
【问题描述】:
我正在尝试从我的 java 代码中调用控制器范围内的函数。 在 Google 中进行大量搜索后,我发现这段代码可以从 Java 代码中调用 Js 函数,但我无法直接调用我的控制器函数。
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(jsInterface, "JSInterface");
myWebView.loadUrl("javascript:"+functionName);
终于可以从 Java 调用 Js 函数了。现在我想从不在控制器中的其他函数调用我的控制器函数。我尝试使用下面的代码从外部调用 AngulrJs 控制器功能。
var scope = angular.element(document.getElementById("messageList")).scope();
scope.$apply(function(){
scope.number = '345';
scope.message = 'Shan';
scope.addItem();
})
但是这段代码导致下面的错误
Uncaught TypeError: Cannot read property '$apply' of undefined
我尝试了 $apply 和 safeApply,但都不起作用。我是 AngularJs 的新手,任何建议都会对我有所帮助。
HTML 代码:
<div id="mainContainer" ng-controller="MainCtrl">
<ion-nav-view></ion-nav-view>
</div>
<script id="message.html" type="text/ng-template">
<ion-view title="Message">
<ion-content>
<div id="messageList" ng-controller="MessageCtrl">
<ion-list>
<ion-item ng-repeat="item in items">
{{item.number}} - {{item.message}}!
</ion-item>
</ion-list>
</div>
</ion-content>
</ion-view>
</script>
【问题讨论】:
-
向后工作一点,
document.getElementById("messageList")定义了吗? -
其实messageList是模板的一部分。
-
当你调用你的代码时不回答是否定义了?
标签: javascript android angularjs controller scope