Angular js ng-click问题

时间:2015-05-07 13:27:26

标签: javascript angularjs-scope

我想读一个Json对象,然后我把Json的元素放在我的html(用户界面)中,问题是,只有当我在按钮上单击两次时元素才出现在视图中。     这是控制器中的功能:

      $scope.openfile=function ()
     {


    $scope.db.select("items", {
       "id": {
      "value": $routeParams.id,
          },
         }).then(function(results) {
    var parser = new xml2js.Parser();
               fs.readFile(results.rows.item(0).path,             function(err, data) {
       parser.parseString(data, function (err, result) {
       if (err == null)
      {
   $scope.descriptionApp=result.widget.description[0];
   }
     });
     });
      }

html:

       <label class="control-label" for="inputDefault"></label>
        <textarea type="text" class="form-control" id="description"  ng-model="descriptionApp"></textarea>
        <a class="btn btn-primary"  ng-click="openfile()">Open File</a>

1 个答案:

答案 0 :(得分:0)

从我看到的,你试图从angular的范围之外的函数更新$ scope - fs.readFile()。 在这种情况下你需要使用$ scope。$ apply来包装操作。这样做:

    fs.readFile(results.rows.item(0).path,function(err, data) {
       parser.parseString(data, function (err, result) {
       if (err == null)
      {$scope.$apply(function(){
   $scope.descriptionApp=result.widget.description[0];
});
   }
     });
     });