为什么$ scope内部变量指令没有得到更新?

时间:2016-09-17 14:40:27

标签: javascript angularjs angularjs-directive highmaps

我已经使用angular制作了一个使用highmaps的指令,地图正在渲染。我需要将最终配置的对象传递回控制器。因此,我在指令中分配这样的,

  $timeout(function() {
      scope.mapconfigured = mapConfig;
   });

最初我定义了这样的控制器,

app.controller('mainCtrl', function($scope, DB) {
    $scope.mydata = DB.getStatesData();
    $scope.mapconfigured = {};
}

但是 mapconfigured 变量没有在指令中更新,控制器也没有打印出我真正需要的内容。

我最初也将mapconfigured变量分配给指令

  <my-map mapconfigured="mapconfigured" mydata="mydata" header="'Highmap Demo'"></my-map>

这里有什么问题?这是 APPLICATION

预期输出

我需要将 mapConfig 对象分配给控制器内的 mapconfigured 范围变量。

2 个答案:

答案 0 :(得分:0)

那是因为您在范围指令中使用了 mapconfigured ,并且在链接指令中尝试使用数据定义 mapConfigured

  

替换为此代码:

  $timeout(function() {
      scope.mapconfigured = mapConfig;
  });

答案 1 :(得分:0)

正如Ivan在评论中提到的,这是一个错字,我在控制器中声明了范围变量&#39; mapconfigured&#39;但是在我指派给&#39; mapConfigured&#39;的指令中,这样改变了

<my-map mapconfigured="mapconfigured" mydata="mydata" header="'Highmap Demo'"></my-map>

$timeout(function() {
   scope.mapconfigured = mapConfig;
  });