Javascript angularJS-ng模型未更新
在完成了一些关于AngularJS的教程之后,我现在正在自己编写我的第一个示例应用程序。我首先展示了一个非常简单的员工列表,效果很好。现在我想添加一个简单的文本过滤器,就像我在教程中学到的那样 我用Javascript angularJS-ng模型未更新,javascript,angularjs,ng-repeat,angular-ngmodel,Javascript,Angularjs,Ng Repeat,Angular Ngmodel,在完成了一些关于AngularJS的教程之后,我现在正在自己编写我的第一个示例应用程序。我首先展示了一个非常简单的员工列表,效果很好。现在我想添加一个简单的文本过滤器,就像我在教程中学到的那样 我用ng model=“filterText”和|filter:filterText在我的html列表中添加了一个输入,以及$scope.filterText=null到我的angularJS控制器 当我现在在输入中输入任何内容时,不会发生任何事情。当我将filterText值直接设置到我的Angular
ng model=“filterText”
和|filter:filterText
在我的html列表中添加了一个输入,以及$scope.filterText=null代码>到我的angularJS控制器
当我现在在输入中输入任何内容时,不会发生任何事情。当我将filterText
值直接设置到我的AngularJS
控制器时,过滤器正在工作,因此更新textFilter
的值时一定会出现问题
我该怎么做才能让它工作?我已经找到了一个解决方案,但没有任何帮助
我的html:
<div class="container main-frame" ng-app="Employees" ng-controller="mainController" ng-init="init()">
<div id="searchbox">
<label>Filter: </label>
<input type="text" ng-model="filterText" />
</div>
<div id="emplist">
<h2>Employees</h2>
<p>
<ul id="emps">
<li ng-repeat="mitarbeiter in results | filter: filterText">
# {{mitarbeiter.id}} - <strong>{{mitarbeiter.name}}</strong>
</li>
</ul>
</p>
</div>
var app = angular.module('Employees', []);
app.controller("mainController", function ($scope) {
$scope.results = [];
$scope.filterText = null;
$scope.init = function(){
jsonObject = eval(jsonfunction("parameters"));
angular.forEach(jsonObject, function (mitarbeiter, key) {
$scope.results.push(mitarbeiter);
});
}
})
编辑:
<div class="container main-frame" ng-app="Employees" ng-controller="mainController" ng-init="init()">
<div id="searchbox">
<label>Filter: </label>
<input type="text" ng-model="filterText" />
</div>
<div id="emplist">
<h2>Employees</h2>
<p>
<ul id="emps">
<li ng-repeat="mitarbeiter in results | filter: filterText">
# {{mitarbeiter.id}} - <strong>{{mitarbeiter.name}}</strong>
</li>
</ul>
</p>
</div>
var app = angular.module('Employees', []);
app.controller("mainController", function ($scope) {
$scope.results = [];
$scope.filterText = null;
$scope.init = function(){
jsonObject = eval(jsonfunction("parameters"));
angular.forEach(jsonObject, function (mitarbeiter, key) {
$scope.results.push(mitarbeiter);
});
}
})
根据的答案:
在firebug中,我的jsonObject如下所示:
[{"id":1,"name":"John"},{"id":2,"name":"Jane"},{"id":3,"name":"Peter"}]
我用这个jsonObject更改了工作解决方案,它仍然可以正常工作,所以这应该不是问题
进一步信息:我正在VS2013调试模式下使用一个WebAPI2控制器,它获取sql数据库的数据。我的jsonfunction只是对控制器的ajax请求
EDIT2:
<div class="container main-frame" ng-app="Employees" ng-controller="mainController" ng-init="init()">
<div id="searchbox">
<label>Filter: </label>
<input type="text" ng-model="filterText" />
</div>
<div id="emplist">
<h2>Employees</h2>
<p>
<ul id="emps">
<li ng-repeat="mitarbeiter in results | filter: filterText">
# {{mitarbeiter.id}} - <strong>{{mitarbeiter.name}}</strong>
</li>
</ul>
</p>
</div>
var app = angular.module('Employees', []);
app.controller("mainController", function ($scope) {
$scope.results = [];
$scope.filterText = null;
$scope.init = function(){
jsonObject = eval(jsonfunction("parameters"));
angular.forEach(jsonObject, function (mitarbeiter, key) {
$scope.results.push(mitarbeiter);
});
}
})
当我不使用eval()
时,没有任何变化。我已成功获取列表,但无法使用筛选器。。。以下是我的Ajax请求:
function jsonfunction(par) {
$.ajax({
url: url + par,
async: false,
success: function (data) {
json = data;
},
headers: getSecurityHeaders()
});
return json;
}
答案在myWebApiConfig.cs
中格式化为JSON。不可能有任何错误 jsonObject
javascript变量应该获得如下所示的一些数据
jsonObject=[{id:1,name:'Jessey'},
{id:2,name:'John'},
{id:3,name:'Mathew'},
{id:4,name:'Sunny'}];
但是在你的代码中,JSON函数
没有定义,而使用eval来评估它的目的是什么,我们需要返回一个JSON
,然后所有的东西甚至过滤器都会像预期的那样正常工作
jsonObject = eval(jsonfunction("parameters"));
另外,不要将JQuery
与AngularJS
混淆,因为这不是一个好的做法,请阅读-
对于AJAX
AngularJS
本身提供的
编辑1
$scope.init = function()
{
$http({
method: 'GET',
url: '/someUrl'
}).
success(function (data, status, headers, config) {
angular.forEach(data, function (mitarbeiter, key) {
$scope.results.push(mitarbeiter);
});
}).
error(function (data, status, headers, config) {
});
}
jsonfunction未定义…哦。。。jsonfunction工作正常。名单就要出来了。我只是没有在这个问题上添加代码。jsonfunction为我提供了一个格式良好的json对象。我已经使用这个函数很长时间了,所以应该没有问题。我只是不能使用过滤器。看看我的答案,jsonfunction返回一个json,如图所示,一切都正常,甚至过滤所有正常工作,希望你已经理解了……你为什么需要eval
?使用它从来都不是个好主意。谢谢你的回答,但我还是很困惑。我编辑了我的问题,如果你能看一下就好了。我的jsonObject也适用于您的示例。。。angularJS在我的项目设置方面会有什么问题吗?你能给我看一下你的ajax调用吗?你说它会返回一个JSONEDED我的问题。我没有eval()的请求不会更改任何内容。我在上面发布了我的Ajax请求。我认为应该没有问题。@Fabi一个建议…不要将jquery与angular混淆,这不是一个好的实践,因为ajax angular本身提供@Fabi check out my edit……通过将angular循环引入ajax调用的成功块来做出承诺