【问题标题】:How can i share variables between views, with the same controller in AngularJS?如何在 AngularJS 中使用相同的控制器在视图之间共享变量?
【发布时间】:2015-07-03 21:47:20
【问题描述】:

我有这个控制器...

app.controller('UploadController', ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) {
    $scope.$watch('files', function () {
        $scope.upload($scope.files);
    });
    $scope.upload = function (files) {
        if (files && files.length) {
            for (var i = 0; i < files.length; i++) {
                var file = files[i];
            }
        }
    };
}]);

我将从files[i] 获得的温度分配给var file,因此我可以像预览一样在我的视图上显示温度。

 <section ng-controller="UploadController">
      <img ngf-src="files[0]" ng-show="files[0].type.indexOf('image') > -1">
 </section>

但我真正需要的是在我的模态视图中显示温度。

 <section ng-controller="UploadController">
      <img ngf-src="files[0]" ng-show="files[0].type.indexOf('image') > -1">
 </section>

模态视图具有相同的控制器和相同的“img”属性,但是当我显示模态视图时控制器RESTART,这是问题的重点,我需要学习如何我将变量的值保存在同一个控制器中,但在不同的视图中,无需重做操作。

基本上我需要:显示视图时,我的控制器不会重新启动

【问题讨论】:

  • 请显示您实际遇到问题的代码(即调用模态的代码)......如果您的意思是模态使用相同的,目前还不是很清楚 instance 控制器,或使用同一控制器类的另一个实例。
  • 一旦您更改视图,您的控制器将重置。这些是路由器视图吗?
  • 现在问题更清楚了,我希望能更好地理解
  • 无论何时使用ng-controller,您都会得到一个新的控制器副本。要在视图之间保留 var 或在某种意义上使它们成为 global,您可以使用 $rootScope 或创建服务。

标签: javascript angularjs angularjs-controller modal-view


【解决方案1】:

&lt;img src=""&gt; 获取图像的 url 或图像的路径。将图像上传到服务器后。如果你可以返回图片 url 而不是图片数据,图片应该可以正常显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多