为什么我的数据绑定在Angular Svc、Ctrl和View之间不能正常工作



我正试图在我的一个视图中提取已经记录的信息,以便在需要时进行更新。我已经尝试了我能想到的一切,但信息不会填充在表单中。当我点击链接时,它会转到带有该公司正确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>

由于您正在使用异步函数更新作用域(对吧?),我想您需要使用$timeout(这需要成为控制器的依赖项)。

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

最新更新