Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Javascript 调用角度';正在通过Jquery显示,但它不工作_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 调用角度';正在通过Jquery显示,但它不工作

Javascript 调用角度';正在通过Jquery显示,但它不工作,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我试图用Jquery从signalR方法设置angularJs范围项,但范围项没有改变。这是我的密码: @Scripts.Render("~/Scripts/jquery-1.10.2.js") @Scripts.Render("~/Scripts/jquery.signalR-2.2.0.js") @Scripts.Render("~/Scripts/angular.js") <script type="text/javascript"> $(function () { //Tr

我试图用Jquery从signalR方法设置angularJs范围项,但范围项没有改变。这是我的密码:

@Scripts.Render("~/Scripts/jquery-1.10.2.js")
@Scripts.Render("~/Scripts/jquery.signalR-2.2.0.js")
@Scripts.Render("~/Scripts/angular.js")

<script type="text/javascript">
$(function () {
//Triggered from SignalR
        survey.client.refreshSurvey = function (connectionid) {
                var scope = angular.element($("#SurveyCtrl")).scope();
                scope.showGif = false;
                scope.$apply();

        };
    });
</script>
@Scripts.Render(“~/Scripts/jquery-1.10.2.js”)
@Scripts.Render(“~/Scripts/jquery.signalR-2.2.0.js”)
@Scripts.Render(“~/Scripts/angular.js”)
$(函数(){
//由信号机触发
survey.client.refreshSurvey=函数(connectionid){
var scope=angular.element($(“#SurveyCtrl”)).scope();
scope.showGif=false;
作用域:$apply();
};
});
Html:

<div ng-app="SurveyApp" id="SurveyCtrl" ng-controller="SurveyCtrl">
  <div ng-show="showGif">
    <img src="image.gif">
  </div>
  <div ng-show="!showGif">
    <img src="backGround.png">
  </div>

我找不到哪里错了?

在这里,我添加了示例,但在单击按钮时调用函数,它工作正常。。。您需要此函数来接受angularjs中设置的jquery值

   (function($, ng) {
        var $val = $.fn.val; // save original jQuery function
       // override jQuery function
      $.fn.val = function (value) {
        // if getter, just return original
        if (!arguments.length) {
          return $val.call(this);
        }
         // get result of original function
        var result = $val.call(this, value);
         // trigger angular input (this[0] is the DOM object)
        ng.element(this[0]).triggerHandler('input');
         // return the original result
        return result; 
      }
    })(window.jQuery, window.angular);

为什么不把代码放在angularjs控制器中?你可以检查这个项目是否依赖于angularjs控制器内部?这是唯一的解决办法吗?这里还有别的解决办法吗?没有。可能没有从您的控制器中找到。所以,与其在控制器外部搜索范围,不如在控制器内部搜索。谢谢你的回答。我找到了解决办法。我知道这不是最好的内联js,但我试着集中精力调用angular的func。下面是我的解决方案:var scope=angular.element($(“#SurveyCtrl”)).scope();scope.showGif=false;angular.element($(“#SurveyCtrl”)).scope().$apply();在angularjs中,是否有相同的过程
   (function($, ng) {
        var $val = $.fn.val; // save original jQuery function
       // override jQuery function
      $.fn.val = function (value) {
        // if getter, just return original
        if (!arguments.length) {
          return $val.call(this);
        }
         // get result of original function
        var result = $val.call(this, value);
         // trigger angular input (this[0] is the DOM object)
        ng.element(this[0]).triggerHandler('input');
         // return the original result
        return result; 
      }
    })(window.jQuery, window.angular);