为什么我的数据绑定在Angular Svc,Ctrl和View之间无法正常工作?

时间:2014-09-29 00:56:10

标签: angularjs

我试图在我的一个视图中提取已记录的信息,以便我可以在需要时更新它。我已经尝试了所有我能想到的东西,而且信息不会填入表格中。当我点击链接时,它会转到该公司的正确ID号的页面,但数据不会填充。

这是我的代码:

SVC:

function getCompany(companyId) {
            return $http.get("api/collections/companies/" + companyId);
        }

function editCompany(company) {
            $http.put("api/collections/companies/" + company._id, company).then(function (res) {
                $rootScope.$broadcast("company:updated");
                $log.info("company:updated");
            });

        }

Ctrl:

companiesSvc.getCompany($routeParams.companyId).success(function (company) {
          $timeout(function () {
            $scope.company = company;
          });
        });

$scope.editCompany = function (company) {
            console.log(company);
            companiesSvc.editCompany(company).then(function () {
              $location.path('/admin/companies');
            });
        };

查看:

<form ng-submit="editCompany(company)">
  <input type="text" data-ng-model="company.title" value="company.title"><br>
  <input type="text" data-ng-model="company.url" value="company.url"><br>
  <input type="text" data-ng-model="company.location" value="company.location"><br>
  <input type="text" data-ng-model="company.phoneNumber" value="company.phoneNumber"><br>
  <input type="email" data-ng-model="company.email" value="company.email"><br>
  <textarea name="" id="" cols="30" rows="10" data-ng-model="company.technologies" value="company.technologies">{{company.technologies}}</textarea><br>
  <button type="submit">Update</button>
  <a href="#/admin/companies"><button>Cancel</button></a>
</form>

1 个答案:

答案 0 :(得分:0)

由于您使用异步函数更新范围(对吗?),我猜您需要使用$ timeout(需要成为控制器的依赖项)。

$timeout(function() {
    $scope.company = company;
});