Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角流星:更改模型值不会';不要改变看法_Angularjs_Meteor_Ionic Framework_Angular Meteor - Fatal编程技术网

Angularjs 角流星:更改模型值不会';不要改变看法

Angularjs 角流星:更改模型值不会';不要改变看法,angularjs,meteor,ionic-framework,angular-meteor,Angularjs,Meteor,Ionic Framework,Angular Meteor,我正在使用angular meteor和ionic开发todo应用程序。 我有一个带有输入和列表的视图。 当我点击编辑时,项目的名称应该出现在输入上,您可以编辑它,然后应用它。 到目前为止,一切正常,但在应用更改后,输入的文本会被卡住,如果单击另一个todo进行编辑,其标题不会显示在输入中,但如果编写内容并单击“应用”,则会发生更改 以下是视图的代码: <ion-view view-title="Task ongoing"> <ion-content>

我正在使用angular meteor和ionic开发todo应用程序。 我有一个带有输入和列表的视图。 当我点击编辑时,项目的名称应该出现在输入上,您可以编辑它,然后应用它。 到目前为止,一切正常,但在应用更改后,输入的文本会被卡住,如果单击另一个todo进行编辑,其标题不会显示在输入中,但如果编写内容并单击“应用”,则会发生更改

以下是视图的代码:

<ion-view view-title="Task ongoing">
    <ion-content>
            <div class="item item-input-inset">
                <label class="item item-input">
                    <input type="text" ng-model="n" placeholder="click on a task to edit it">
                </label>
                <button class="button button-balanced button-small"
                        style="margin:1%"
                        ng-click="editTask(n)">
                    <span class="glyphicon glyphicon-plus"></span> Apply</button>
            </div>
        <ion-item ng-repeat="t in todos | filter:'ongoing'">
          {{t.name}} <strong>{{t.status}}</strong> <span class="badge" ng-click="enableEditTask(t)" >Edit</span>
            <span class="badge" ng-click="makeTaskDone(t)" style="right: 67px" >Done</span>
        </ion-item>
    </ion-content>
</ion-view>
这里是客户端上的代码(angular)

我认为问题发生在调用Todos.update之后,因为当我尝试不使用时,一切正常


Ps:我用不安全的软件包尝试了这个方法,但也出现了同样的问题。

如果您在angular之外对
$scope
模型进行更改,您应该在
$scope.$apply(…)
中调用您的方法。这样可以运行摘要并拾取更改,然后更新视图()。这适用于angular未调用的所有异步函数

Meteor.methods({
        makeDone:function(task){
            Todos.update({_id:task._id},{$set:{status:'done'}});
        },
        editTask:function(name,task){
            Todos.update({_id:task._id},{$set:{name:name}});
        }
    })
$scope.makeTaskDone=function(task){
                Meteor.call('makeDone',task);
            };

            $scope.enableEditTask = function(task) {
                $scope.task=task;
                $scope.n=task.name;
            };

            $scope.editTask=function(name){
                Meteor.call('editTask',name,$scope.task);
                $scope.n="";
            }