如何将Angular变量注入JavaScript变量
How to inject an Angular variable into a JavaScript variable?
我的角度控制器中有这个功能:
$scope.get_all_places = function () {
$http.get("get-all-places").then(function (response) {
$scope.selected_place = eval(response.data[0]);
});
};
我想把我从$scope.selected_place
得到的值设置为这个JavaScript代码:
var $shape_options = selected_place.shape_attributes;
var $map_options = selected_place.map_attributes;
switch ($shape_options.shape_type) {
case 'circle':
var $center = selected_place.center;
var $radius = selected_place.radius;
break;
case 'rectangle':
var $bounds = selected_place.rectangle;
break;
case 'polygon':
var $path = selected_place.polygon;
break;
}
但是angular之前执行的JavaScript代码从服务器获取数据的问题。
有什么办法吗?
将所有代码放在ajax调用的then
函数中,ajax异步执行
$scope.get_all_places = function () {
$http.get("get-all-places").then(function (response) {
$scope.selected_place = eval(response.data[0]);
var $shape_options = selected_place.shape_attributes;
var $map_options = selected_place.map_attributes;
switch ($shape_options.shape_type) {
case 'circle':
var $center = selected_place.center;
var $radius = selected_place.radius;
break;
case 'rectangle':
var $bounds = selected_place.rectangle;
break;
case 'polygon':
var $path = selected_place.polygon;
break;
});
other_functions($map_options);//call the functions that need the $map_options variable
};
您可以创建一个函数:
function determineShape(selected_plane){
var $shape_options = selected_place.shape_attributes;
var $map_options = selected_place.map_attributes;
switch ($shape_options.shape_type) {
case 'circle':
var $center = selected_place.center;
var $radius = selected_place.radius;
break;
case 'rectangle':
var $bounds = selected_place.rectangle;
break;
case 'polygon':
var $path = selected_place.polygon;
break;
}
}
然后在承诺响应中调用它:
$scope.get_all_places = function () {
$http.get("get-all-places").then(function (response) {
// Run after promise is returned
determineShape(response.data[0]);
});
};
在jQuery:中获取变量
试试这个
var selected_place = $('[ng-controller="your controller name here"]').scope().selected_place;
小错误:
再试一次:
var selected_place = $('[ng-controller="your controller name here"]').scope().get_all_places;
不是最整洁的解决方案,但您可以将值放入hidden
输入字段,然后将其设置为JS变量,类似于:
<input id="selected_place" type="hidden" value="{{ selected_place }}"/>
和JS
document.getElementById("selected_place").value;
相关文章:
- 将方法从控制器注入到未使用右变量调用的指令
- 如何将 Node.js 环境变量注入客户端 JavaScript
- Javascript:如何将带有html内容的变量注入到附加的数据属性中
- 将变量注入跨域脚本
- 我们如何将PHP变量注入Javascript
- 将变量注入 webpack
- 如何将范围中的变量注入到 Angular 控制器中
- 从变量注入属性和值
- 将变量注入回调函数范围
- 如何将变量注入子指令
- 如何防止javascript和html5游戏中的变量注入
- 将节点模块变量注入作用域
- 如何将变量注入控制器
- Rails/Javascript:如何将Rails变量注入(非常)简单的Javascript中
- 如何将通过XMLHttpRequest(AJAX)引入的变量注入到代码中?
- 将变量注入函数的作用域中
- 可以将局部变量注入到具有ng控制器的控制器集中吗
- 将j/s变量注入到可重用HTML块中而不在j/s文件中混合两者的有效方法是什么
- 如何解析URL查询字符串,然后将解析后的变量注入HTMLDOM
- 如何将Angular变量注入JavaScript变量