Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过silverlight控件调用angular js方法_C#_Angularjs_Silverlight - Fatal编程技术网

C# 通过silverlight控件调用angular js方法

C# 通过silverlight控件调用angular js方法,c#,angularjs,silverlight,C#,Angularjs,Silverlight,我用AngularJs构建了我的网页,它承载了一个Silverlight控件。现在我需要调用从silverlight角度放置在控制器中的函数。这是我的控制器角度代码示例: var myModule= angular.module('MyModule', []); myModule.controller('MainController', ['$rootScope', '$scope', '$http', function ($rootScope, $scope, $http)

我用AngularJs构建了我的网页,它承载了一个Silverlight控件。现在我需要调用从silverlight角度放置在控制器中的函数。这是我的控制器角度代码示例:

    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 viewModel中的代码:

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>
public class ViewModel : ViewModelBase, INotifyDataErrorInfo
    { 
      public void CallAngularMethod()
      {
           HtmlPage.Window.Invoke("callAngularFunc", new[] { "Testing" });
      }
    }

谢谢,很好的解决方案。我还找到了一个角度较小的解决方案。您可以声明不带“$scope”或不带“this”的方法,并且此方法将是全局的。但你的解决方案更好。非常感谢你,这对你很有帮助。祝你好运谢谢