通过silverlight控件调用angular js方法
本文关键字:js 方法 angular 调用 silverlight 控件 通过 | 更新日期: 2023-09-27 18:25:44
我的网页是用托管Silverlight控件的AngularJs构建的。现在我需要调用一个放置在控制器中的函数。这是我的控制器角度代码示例:
var myModule= angular.module('MyModule', []);
myModule.controller('MainController', ['$rootScope', '$scope', '$http', function ($rootScope, $scope, $http) {
var _self = this;
_self.testMethodForSilverlight = function (message)
{
alert("message: " + message);
};
}]);
这是我的Silverlight视图模型中的代码:
public class ViewModel : ViewModelBase, INotifyDataErrorInfo
{
public void CallAngularMethod()
{
HtmlPage.Window.Invoke("testMethodForSilverlight ", new[] { "Testing" });
}
}
不幸的是,当我调用该方法时,返回的错误是("调用失败:testMethodForSilverlight")。有人知道吗?
您可以尝试编写自定义Javascript代码,并执行类似的操作
<script type="text/javascript">
function callAngularFunc(message) {
angular.element($("#elementID")).scope().testMethodForSilverlight(message);
}
</script>
这里,elementID将是角度控制器绑定到的DOM元素
在这篇文章中有更多关于从外部访问角度数据的信息。
然后,在你的silverlight代码中,像这样拨打
public class ViewModel : ViewModelBase, INotifyDataErrorInfo
{
public void CallAngularMethod()
{
HtmlPage.Window.Invoke("callAngularFunc", new[] { "Testing" });
}
}