为什么指令中的 $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;
});
我已经使用 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;
});