Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 如何从服务传递范围到视图?_Javascript_Angularjs_Templates_View_Scope - Fatal编程技术网

Javascript 如何从服务传递范围到视图?

Javascript 如何从服务传递范围到视图?,javascript,angularjs,templates,view,scope,Javascript,Angularjs,Templates,View,Scope,我在助手服务中具有全局功能 this.displayModalWithInput = function ($scope, title, cotroller, functionCallback) { $scope.modalProperties = { modalTitle : title, modalController : cotroller, modalFunction : functionCallbac

我在助手服务中具有全局功能

this.displayModalWithInput = function ($scope, title, cotroller, functionCallback) {
        $scope.modalProperties = {
            modalTitle : title,
            modalController : cotroller,
            modalFunction : functionCallback
        };

        $('#myModal').modal();
    };
在我的模板中,我有标准的Bootsrap模式窗口。问题是,如果我试图使用以下方式访问范围:

{{modalProperties.modalTitle}} 
没有显示任何内容

如果我想使用全局可用函数并将此全局函数中的数据传递到可访问范围中,如何解决这个问题


谢谢你的建议

服务工厂是单例的,我想说的是,您不能将范围注入到服务中,这不是一个好的实践

在您的情况下,为了避免代码重复,我将创建指令,而不是隔离作用域,在链接函数中,您可以编写所有相关逻辑

这个演示可能会对您有所帮助

指示示例


首先定义$scope.modalProperties=[];在你的控制器里。 然后,当您从控制器调用displayModalwithInput函数时,请传递$scope作为参数之一。e、 g.带输入$scope的显示模式。。。 如果它不起作用,我想看看你的全球服务代码

.directive( 'confirmPopup', function () {
  return {
    restrict: 'A',
    replace: true,
    scope: { title: '@', content: '@', placement: '@', animation: '&', isOpen: '&', func: '&' },
    templateUrl: 'confirmPopup.html',
    link: function ($scope, element, attrs) {
      $scope.confirm = function(){

        $scope.$parent.deleteThing();
        $scope.$parent.tt_isOpen = false;
      }
      $scope.cancel = function(){
        $scope.$parent.tt_isOpen = false;
      }
    }
  };
})