为什么指令中的 $scope 变量没有更新?

why $scope variable inside directive is not getting updated?

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

  $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 变量。

那是因为您在 scope 指令中使用了 mapconfigured,而在 link 指令中您试图用数据定义 mapConfigured .

Replace with this code:

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

正如 Ivan 在评论中提到的那样,这是一个拼写错误,我在控制器中声明为 'mapconfigured' 的范围变量,但在我分配给 'mapConfigured' 的指令中,像这样更改有效

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

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