【发布时间】:2016-11-24 04:52:58
【问题描述】:
在我的控制器中,我创建了$scope function,它返回一个array。 function 使用带有 ng-model 指令的视图中的数据,一切正常(当我使用视图中的表达式调用此函数时,我得到返回的数据),except 当我想使用它时在我的控制器中返回array,我什么也得不到。
JS代码:
app.controller('CalculatorCtrl', function($scope) {
$scope.deparature = {
'lat_1': '',
'lat_2': '',
'lat_3': '',
'long_1': '',
'long_2': '',
'long_3': ''
}
$scope.arrival = {
'lat_1': '',
'lat_2': '',
'lat_3': '',
'long_1': '',
'long_2': '',
'long_3': ''
}
$scope.select = {
'departure_1': '',
'departure_2': '',
'arrival_1': '',
'arrival_2': ''
}
$scope.depCoordinate = function() {
var cordLat = $scope.deparature.lat_1 + '/' + $scope.deparature.lat_2 + '/' + $scope.deparature.lat_3 + '/';
if ($scope.select.departure_1 === 'S') {
var temp = '-' + cordLat;
var CordLatS = Dms.parseDMS(temp);
} else {
var CordLatS = Dms.parseDMS(cordLat);
};
var cordLong = $scope.deparature.long_1 + '/' + $scope.deparature.long_2 + '/' + $scope.deparature.long_3 + '/';
if ($scope.select.departure_2 === 'W') {
var temp = '-' + cordLong;
var CordLongW = Dms.parseDMS(temp);
} else {
var CordLongW = Dms.parseDMS(cordLong);
};
return [CordLatS.toFixed(5), CordLongW.toFixed(5)];
}
var cord = $scope.depCoordinate();
var lati = cord[0];
console.log(lati);
/*I need to pass the array result to var p1. How I can do that?*/
$scope.distance = function () {
var p1 = new LatLon(50.06632, -5.71475);
var p2 = new LatLon(58.64402, -3.07009);
return p1.distanceTo(p2);
};
});
【问题讨论】:
-
您能否使用相关的 HTML 更新您的问题,以便我们更好地了解它们是如何协同工作的?另外,一个plunker会很好。
-
还有,什么是 Dms?您正在使用它,但我看不到它是在哪里定义或注入的。
-
我编辑了帖子并添加了带有 HTML 代码和控制器的 Plunker 链接。 DMS 是从某个第三方库中使用的,该部分工作正常。
-
永远不要这样做:
<p>Test: {{ depCoordinate() }}</p>。它会多次调用你的函数,导致几个问题。放一个console.log('anything');,看看你自己。ng-init()应仅在特定情况下使用(即ng-repeat)。
标签: angularjs model-view-controller ionic-framework angularjs-scope