【问题标题】:update $scope variable after factory get call工厂调用后更新 $scope 变量
【发布时间】:2017-01-13 09:39:21
【问题描述】:

我是 Angular 的新手。我使用的代码为:

工厂

// Factory
module.factory('mainJsonData', function($http) {
 var promise = null;
  return function() {
   if (promise) {
    // If we've already asked for this data once,
    // return the promise that already exists.
    return promise;
   } else {
    promise = $http.get('json/main.json');
    return promise;
   }
 };
});

控制器代码是:

// Getting factory data
 mainJsonData().success(function(mainJsonData) {
  $scope.mainJsonData = mainJsonData;
 });

我想在自定义指令中使用$scope.mainJsonData

【问题讨论】:

  • 你到底想做什么?你想将$scope.mainJsonData 传递给自定义指令吗?
  • 除了使用deprecated success method,到目前为止我看不到任何问题。您遇到问题的其余代码在哪里?

标签: angularjs angular-directive


【解决方案1】:

试试这个:-

.directive('myDir', function() {
  return {
    restrict: 'E',
    scope: {
      mainJsonData: '=mainJsonData
    },
  };
});

控制器

.controller('myController', function($scope) {
   mainJsonData().success(function(mainJsonData) {
      $scope.mainJsonData = mainJsonData;
   });
});

ma​​in.html

<div ng-controller="myController">

   <data-my-dir main-json-data="mainJsonData">
   </data-my-dir>

</div>

这样您就可以使用 $scope 在指令中访问mainJsonData

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多