Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/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
Javascript Angularjs:发布后视图不更新列表_Javascript_Angularjs_Rest_Resources - Fatal编程技术网

Javascript Angularjs:发布后视图不更新列表

Javascript Angularjs:发布后视图不更新列表,javascript,angularjs,rest,resources,Javascript,Angularjs,Rest,Resources,我目前正在开发一个小的angularjs应用程序,它基本上是一个用户档案管理应用程序 我遇到的问题是动态添加用户。当我输入用户数据时,它会成功地将其发布到我已设置的本地服务器,但我必须刷新页面才能在用户列表中看到新用户 我显然不想刷新 -是的,我在运行POST函数后尝试了$scope.apply() 我在Angular Batarang(调试工具)中注意到的一点是,范围正在更新,但新用户应该在一个空白点或“null”值处 以下是控制器: UsersApp.controller('UserList

我目前正在开发一个小的angularjs应用程序,它基本上是一个用户档案管理应用程序

我遇到的问题是动态添加用户。当我输入用户数据时,它会成功地将其发布到我已设置的本地服务器,但我必须刷新页面才能在用户列表中看到新用户

我显然不想刷新

-是的,我在运行POST函数后尝试了$scope.apply()

我在Angular Batarang(调试工具)中注意到的一点是,范围正在更新,但新用户应该在一个空白点或“null”值处

以下是控制器:

UsersApp.controller('UserListController', [ '$scope', 'userService',  function($scope, userService) {  


  $scope.usersList = userService.usersList;

  $scope.users = userService.users; 
  $scope.user = userService.user; 

}]);

UsersApp.controller('AddUserController', function($scope, $window,    dataResources, userService) {  

  $scope.addNew = function addNew(newUser) {
  $scope.usersList = userService.usersList;

  var firstName = newUser.firstName;
  var lastName = newUser.lastName;
  var phone = newUser.phone;
  var email = newUser.email;

  $scope.newUserData = {
    firstName , lastName, phone , email
  }

  new dataResources.create($scope.newUserData);
  $scope.usersList.push(dataResources);
  $scope.$apply();

};
UsersApp.factory('dataResources', [ '$resource', function($resource) {

  return $resource('http://localhost:24149/users/:id', {}, {
    query: {method:'GET', params:{idnum: '@id'}, isArray:true},
    create: {method:'POST', headers: { 'Content-Type': 'application/json' }},
    update: {method:'PUT', params:{idnum: '@id'}},
    remove: {method:'DELETE', params:{idnum:'@id'}, isArray:true}
  });

}]);


UsersApp.service('userService', function(dataResources) {

return {
      usersList: dataResources.query()
}

});
以下是我的观点:

添加用户:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="js/minimize.js"></script>

<div ng-controller="AddUserController">

<div class="userInfo" id="usernameDiv">
    <h2 id="username">User<img id="showhide" src="images/plus.png" style="position:absolute; padding-left:15px; width:31px; color:white;"></h2>
</div>

<div class="userInfo">
    <div id="listInfo">

        <form ng-controller="AddUserController">
                <input type="text" placeholder= "First Name" ng-model="newUser.firstName"></input>
                <input type="text" placeholder= "Last Name" ng-model="newUser.lastName"></input>
                <input type="text" placeholder= "Phone Number" ng-model="newUser.phone"></input>
                <input type="text" placeholder= "Email" ng-model="newUser.email"></input>
                <button type="submit" ng-click="addNew(newUser)">Add   User</button>
        </form>

    </div>
</div>

我不确定我是否完全遵守了,但我相信你需要处理你的帖子中的承诺,然后推动结果。e、 g

  dataResources.create($scope.newUserData).$promise.then(function(data) {
       $scope.usersList.push(data);
   });

您的服务将返回一个承诺,然后当帖子完成时,您的服务将返回新用户,您只需将其添加到当前列表中即可。

我不确定是否完全遵守,但我相信您需要处理帖子中的承诺,然后推送结果。e、 g

  dataResources.create($scope.newUserData).$promise.then(function(data) {
       $scope.usersList.push(data);
   });

您的服务将返回一个承诺,然后当帖子完成时,您的服务将返回新用户,您只需将其添加到当前列表中即可。

我不确定是否完全遵守,但我相信您需要处理帖子中的承诺,然后推送结果。e、 g

  dataResources.create($scope.newUserData).$promise.then(function(data) {
       $scope.usersList.push(data);
   });

您的服务将返回一个承诺,然后当帖子完成时,您的服务将返回新用户,您只需将其添加到当前列表中即可。

我不确定是否完全遵守,但我相信您需要处理帖子中的承诺,然后推送结果。e、 g

  dataResources.create($scope.newUserData).$promise.then(function(data) {
       $scope.usersList.push(data);
   });
您的服务将返回一个承诺,当发布完成后,您的服务将返回新用户,您只需将其添加到当前列表中即可。

请参阅文档:

非获取“类”操作:Resource.action([parameters]、postData、[success]、[error])

根据文档,您的代码应该如下所示:

dataResources.create($scope.newUserData,
   function(data) {
       $scope.usersList.push(data);
   }
);
控制器:您不需要创建新的userdata对象,只需使用newUser即可

UsersApp.controller('AddUserController', function($scope, $window,    dataResources, userService) {  

  $scope.usersList = userService.usersList;

  $scope.addNew = function addNew(newUser) {
    dataResources.create($scope.newUser,
      function(data) {
        $scope.usersList.push(data);
      }
    );
  };    
};
见文件:

非获取“类”操作:Resource.action([parameters]、postData、[success]、[error])

根据文档,您的代码应该如下所示:

dataResources.create($scope.newUserData,
   function(data) {
       $scope.usersList.push(data);
   }
);
控制器:您不需要创建新的userdata对象,只需使用newUser即可

UsersApp.controller('AddUserController', function($scope, $window,    dataResources, userService) {  

  $scope.usersList = userService.usersList;

  $scope.addNew = function addNew(newUser) {
    dataResources.create($scope.newUser,
      function(data) {
        $scope.usersList.push(data);
      }
    );
  };    
};
见文件:

非获取“类”操作:Resource.action([parameters]、postData、[success]、[error])

根据文档,您的代码应该如下所示:

dataResources.create($scope.newUserData,
   function(data) {
       $scope.usersList.push(data);
   }
);
控制器:您不需要创建新的userdata对象,只需使用newUser即可

UsersApp.controller('AddUserController', function($scope, $window,    dataResources, userService) {  

  $scope.usersList = userService.usersList;

  $scope.addNew = function addNew(newUser) {
    dataResources.create($scope.newUser,
      function(data) {
        $scope.usersList.push(data);
      }
    );
  };    
};
见文件:

非获取“类”操作:Resource.action([parameters]、postData、[success]、[error])

根据文档,您的代码应该如下所示:

dataResources.create($scope.newUserData,
   function(data) {
       $scope.usersList.push(data);
   }
);
控制器:您不需要创建新的userdata对象,只需使用newUser即可

UsersApp.controller('AddUserController', function($scope, $window,    dataResources, userService) {  

  $scope.usersList = userService.usersList;

  $scope.addNew = function addNew(newUser) {
    dataResources.create($scope.newUser,
      function(data) {
        $scope.usersList.push(data);
      }
    );
  };    
};

同样的想法对于angular2使用可观测值

public posts: any;    
onPost(input) {
        this.dataService.jsonserverPost(input)
        .subscribe(
          (data: any) => {
            this.posts.push(data);        
          }
      );
      }

同样的想法对于angular2使用可观测值

public posts: any;    
onPost(input) {
        this.dataService.jsonserverPost(input)
        .subscribe(
          (data: any) => {
            this.posts.push(data);        
          }
      );
      }

同样的想法对于angular2使用可观测值

public posts: any;    
onPost(input) {
        this.dataService.jsonserverPost(input)
        .subscribe(
          (data: any) => {
            this.posts.push(data);        
          }
      );
      }

同样的想法对于angular2使用可观测值

public posts: any;    
onPost(input) {
        this.dataService.jsonserverPost(input)
        .subscribe(
          (data: any) => {
            this.posts.push(data);        
          }
      );
      }

谢谢,伙计,成功了!我不确定promise是否是我想要的,但它现在更新得很好,没有错误。谢谢,它成功了!我不确定promise是否是我想要的,但它现在更新得很好,没有错误。谢谢,它成功了!我不确定promise是否是我想要的,但它现在更新得很好,没有错误。谢谢,它成功了!我不确定promise是否是我想要的,但它现在更新得很好,没有错误。这确实有效,无需做出承诺,这是一个巨大的帮助。谢谢你!至于我的控制器,我忘了重构那个不必要的遗留对象,这要感谢它的成功,而不必做出承诺,这是一个巨大的帮助。谢谢你!至于我的控制器,我忘了重构那个不必要的遗留对象,这要感谢它的成功,而不必做出承诺,这是一个巨大的帮助。谢谢你!至于我的控制器,我忘了重构那个不必要的遗留对象,这要感谢它的成功,而不必做出承诺,这是一个巨大的帮助。谢谢你!至于我的控制器,多亏了提醒,我忘了重构那个不必要的遗留对象