在我的控制器中,我创建了$scope
function
,返回array
。那个function
使用来自ng-model
指令的视图中的数据,一切正常(当我用视图中的表达式调用此函数时,我得到返回的数据),除了当我想在我的控制器中使用返回的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);
};
});
答案 0 :(得分:0)
你是什么意思&#34;我什么都没得到&#34;?据我所知,你在控制器的init状态上写了<input type="button" id="btnSearch" value="Search" onclick="GetValue();" />
<p id="message" ></>
。执行控制器后,该功能将立即生效。
我认为问题是初始状态。因为您在首次创建控制器时没有任何数据。您的所有变量都是&#39;&#39;。
那么,你想要做什么呢?您可以在视图层上使用ngChange指令,其中元素正在使用用于监视更新的函数更新变量(deparature,arrival,select)。然后你需要在控制器中编写一个函数,如下所示;
$scope.depCoordinate();
答案 1 :(得分:0)
首先,您的 plunker 中有一些内容应该与此相关:
<p>Test: {{ depCoordinate() }}</p>
。它会多次调用你的函数导致一些问题。
ng-init()
用于此类事情:<div class="list" ng-init="initWaves()">
。它应仅在特定情况下使用(即ng-repeat),请检查docs。然后..如果我理解你的问题,你想在你的视图中使用returned
array
,那么,如果我是正确的,这里是 how-to :
$scope.array = [CordLatS.toFixed(5), CordLongW.toFixed(5)];
return $scope.array;
在视图中,只需使用它:
{{ array }}
//或者你想用它做什么。