我需要使用其他$http.get
$http.get
中的网址
JSON"数据":
[{ "name" : "John" }, {"name" : "Anna"}]
JavaScript文件:
var app = angular.module('app', []);
app.service('service', function($http, $q){
this.getDatas = function () {
var datas = $http.get('urldatas', {cache: false});
return $q.all({datas});
};
});
app.controller('FirstCtrl', function($scope, service, $http) {
var vm = this;
vm.loadData = function () {
var promise = service.getDatas();
promise.then(function (data) {
$scope.datas = data.datas.data;
console.log($scope.datas);
});
};
vm.loadPackages = function () {
var url = 'url2' + 'QQQ' + $scope.datas.name;
$http.get(url).then(function (response) {
$scope.myWelcome = response.data;
console.log($scope.myWelcome);
})
};
HTML:
<table>
<thead>
<tr>
<th>name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="name in datas">
<td>{{name.name}}</td>
<td><button ng-click="vm.loadPackages()"></button></td>
</tr>
</tbody>
</table>
我尝试通过$http.get
和HTML中的值动态更改loadPackages
中getDatas
中的网址。该按钮调用该函数并将数据提供给网址,但我的代码无效,var url = 'url2' + 'QQQ' + $scope.datas.name;
在控制台中返回url2QQQundefindet
。
提前感谢您的回答。
答案 0 :(得分:0)
实际上$scope.datas.name
是一个数组。你无法像$scope.datas[index].name
那样直接访问。如果你知道确切的索引值,那么只需根据索引<table>
<thead>
<tr>
<th>name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="name in datas">
<td>{{name.name}}</td>
<td><button ng-click="vm.loadPackages(name)"></button></td>
</tr>
</tbody>
</table>
进行访问。请在下面找到代码段。
在html中,我将各行传递给函数。
var app = angular.module('app', []);
app.service('service', function($http, $q){
this.getDatas = function () {
var datas = $http.get('urldatas', {cache: false});
return $q.all({datas});
};
});
app.controller('FirstCtrl', function($scope, service, $http) {
var vm = this;
vm.loadData = function () {
var promise = service.getDatas();
promise.then(function (data) {
$scope.datas = data.datas.data;
console.log($scope.datas);
});
};
vm.loadPackages = function (obj) {
var url = 'url2' + 'QQQ' + obj.name;
$http.get(url).then(function (response) {
$scope.myWelcome = response.data;
console.log($scope.myWelcome);
})
};
然后在控制器中我可以得到名字,
//npm install --save-dev crypto-js
var CryptoJS = require("crypto-js");
var esp8266_msg = 'IqszviDrXw5juapvVrQ2Eh/H3TqBsPkSOYY25hOQzJck+ZWIg2QsgBqYQv6lWHcdOclvVLOSOouk3PmGfIXv//cURM8UBJkKF83fPawwuxg=';
var esp8266_iv = 'Cqkbb7OxPGoXhk70DjGYjw==';
// The AES encryption/decryption key to be used.
var AESKey = '2B7E151628AED2A6ABF7158809CF4F3C';
var plain_iv = new Buffer( esp8266_iv , 'base64').toString('hex');
var iv = CryptoJS.enc.Hex.parse( plain_iv );
var key= CryptoJS.enc.Hex.parse( AESKey );
console.log("Let's ");
// Decrypt
var bytes = CryptoJS.AES.decrypt( esp8266_msg, key , { iv: iv} );
var plaintext = bytes.toString(CryptoJS.enc.Base64);
var decoded_b64msg = new Buffer(plaintext , 'base64').toString('ascii');
var decoded_msg = new Buffer( decoded_b64msg , 'base64').toString('ascii');
console.log("Decryptedage: ", decoded_msg);