Javascript angularJS-ng模型未更新

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

在完成了一些关于AngularJS的教程之后,我现在正在自己编写我的第一个示例应用程序。我首先展示了一个非常简单的员工列表,效果很好。现在我想添加一个简单的文本过滤器,就像我在教程中学到的那样

我用
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;

}

答案在my
WebApiConfig.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调用的成功块来做出承诺