Javascript 如何将变量从角度控制器获取到视图
我有一个控制器,看起来像这样:Javascript 如何将变量从角度控制器获取到视图,javascript,json,angularjs,Javascript,Json,Angularjs,我有一个控制器,看起来像这样: angular.module('my_app') .controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) { $scope.onSubmit = function() { var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
以及一个如下所示的视图:
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
您可以通过查看输入来更仔细地查看我想要的对象
$.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
您自己进入javascript控制台并签出该对象
但是,在视图中,当我打印出“queries”对象时,它似乎没有responseJSON属性,而只有readyState属性
我的json对象的其余部分在哪里 这是因为promise系统以及对象在控制台中的打印方式,它们是通过引用而不是通过值打印的。尝试执行console.log(JSON.stringify(JSON)),这是一个字符串而不是一个对象,您将看到您缺少responseJSON属性。您可能会在将来将responseJSON属性附加到对象,但是console.log(对象)将打印它的当前值,即使该值是在您使用console.log之后添加的。这是因为promise系统以及对象在控制台中的打印方式,它们是通过引用而不是通过值打印的。尝试执行console.log(JSON.stringify(JSON)),这是一个字符串而不是一个对象,您将看到您缺少responseJSON属性。您可能会在将来将responseJSON属性附加到对象,但是console.log(对象)将打印它的当前值,即使该值是在您使用console.log之后添加的。这是因为promise系统以及对象在控制台中的打印方式,它们是通过引用而不是通过值打印的。尝试执行console.log(JSON.stringify(JSON)),这是一个字符串而不是一个对象,您将看到您缺少responseJSON属性。您可能会在将来将responseJSON属性附加到对象,但是console.log(对象)将打印它的当前值,即使该值是在您使用console.log之后添加的。这是因为promise系统以及对象在控制台中的打印方式,它们是通过引用而不是通过值打印的。尝试执行console.log(JSON.stringify(JSON)),这是一个字符串而不是一个对象,您将看到您缺少responseJSON属性。您可能会在将来将responseJSON属性附加到对象,但console.log(对象)将打印它的当前值,即使该值是在您使用console.log之后添加的。尝试以下操作:
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
var projectangular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope,$http, Query) {
$scope.onSubmit = function() {
$http.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' }).then(
//sucess
function(response){
angular.copy(response ,$scope.queries);
console.log(json);
},
//error
function(){
alert("cant post");
});
};
}
])
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
$scope.onSubmit=function(){
var json=$.post('http://162.243.232.223:3000/api/query“,{‘输入’:‘我的输入’});
json.done(函数(结果){
$scope.result=结果;
$scope.$apply();
})
log(json);
$scope.querys=json;
};
}
{{result}}
尝试以下方法:
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
$scope.onSubmit=function(){
var json=$.post('http://162.243.232.223:3000/api/query“,{‘输入’:‘我的输入’});
json.done(函数(结果){
$scope.result=结果;
$scope.$apply();
})
log(json);
$scope.querys=json;
};
}
{{result}}
尝试以下方法:
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
$scope.onSubmit=function(){
var json=$.post('http://162.243.232.223:3000/api/query“,{‘输入’:‘我的输入’});
json.done(函数(结果){
$scope.result=结果;
$scope.$apply();
})
log(json);
$scope.querys=json;
};
}
{{result}}
尝试以下方法:
angular.module('my_app')
.controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
console.log(json);
$scope.queries = json;
};
}
])
<div ng-controller="QueryCtrl">
<form ng-submit="onSubmit()" >
<textarea ng-model="query_box" name="my_input"></textarea>
<button type="submit">Submit</button>
</form>
{{ queries }}
<ul ng-repeat="query in queries">
<li>{{query}}</li>
</ul>
</div>
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' });
json.done(function(result){
$scope.result = result;
$scope.$apply();
})
console.log(json);
$scope.queries = json;
};
}
<div>{{result}}</div>
$scope.onSubmit=function(){
var json=$.post('http://162.243.232.223:3000/api/query“,{‘输入’:‘我的输入’});
json.done(函数(结果){
$scope.result=结果;
$scope.$apply();
})
log(json);
$scope.querys=json;
};
}
{{result}}
正如CAT评论的那样,您从.post获得的是一个承诺对象。您必须等待post请求完成(失败或成功)。下面的语法可能有点错误。我只是在飞行中打出来的
angular.module('my_app').controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' }).then(function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
}, function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
});
};
}])
正如猫评论的那样,你从.post得到的是一个承诺对象。您必须等待post请求完成(失败或成功)。下面的语法可能有点错误。我只是在飞行中打出来的
angular.module('my_app').controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' }).then(function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
}, function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
});
};
}])
正如猫评论的那样,你从.post得到的是一个承诺对象。您必须等待post请求完成(失败或成功)。下面的语法可能有点错误。我只是在飞行中打出来的
angular.module('my_app').controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' }).then(function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
}, function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
});
};
}])
正如猫评论的那样,你从.post得到的是一个承诺对象。您必须等待post请求完成(失败或成功)。下面的语法可能有点错误。我只是在飞行中打出来的
angular.module('my_app').controller('QueryCtrl', ['$scope', 'Query', function ($scope, Query) {
$scope.onSubmit = function() {
var json = $.post('http://162.243.232.223:3000/api/query', { 'input': 'my_input' }).then(function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
}, function(response){
console.log(response.data);
$scope.queries = response.data;
$scope.$apply();
});
};
}])
您不使用内置angular$http服务的原因是什么?首先,您最好使用angular版本的Ajax$http。在您的例子中,$http.post(…);其次,应该在ajax调用解析(成功、失败、完成)后分配响应;然后在你的htmlAny中说明你不使用内置angular$http服务的原因?首先,你最好使用angular版本的Ajax$http。在您的例子中,$http.post(…);其次,应该在ajax调用解析(成功、失败、完成)后分配响应;然后在你的htmlAny中说明你不使用内置angular$http服务的原因?首先,你最好使用angular版本的Ajax$http。在您的例子中,$http.post(…);其次,应该在ajax调用解析(成功、失败、完成)后分配响应;然后在你的htmlAny中说明你不使用内置angular$http服务的原因?首先,你最好使用angular版本的Ajax$http。在您的例子中,$http.post(…);其次,应该在ajax调用解析(成功、失败、完成)后分配响应;然后在你的htmlGreat解释中展示这一点。谢谢,很好的解释。谢谢,很好的解释。谢谢,很好的解释。非常感谢。