如何将角度对象转换为JS对象

时间:2016-06-08 11:37:51

标签: javascript angularjs

我有一张表,一列用角度

表示具有角度ng重复的对象
<table class="table table-bordered  table-hover table-condensed  " ng-show="vm.CandidatesList">
<thead>
    <tr>
        <th sortable-header col="FirstName" style="text-align:center">{{::vm.resources.FirstName}}</th>
        <th sortable-header col="LastName" style="text-align:center">{{::vm.resources.LastName}}</th>
        <th sortable-header col="CandidateTopic" style="text-align:center">{{::vm.resources.CandidateTopic}}</th>
    </tr>
</thead>
<tr ng-repeat="c in  vm.CandidatesList "
    row-id="{{ c.ID }}"
    ng-dblclick="vm.goEdit(c.ID)">
    <td ng-model="c.FirstName" style="text-align:center">{{c.FirstName}}</td>
    <td ng-model="c.LastName" style="text-align:center">{{c.LastName}}</td>
    <td style="text-align:center" name="TopicToCandidate" id="TopicToCandidate+{{c.ID}}"><a ng-repeat="t in vm.getTopicToCandidate(c.ID)">{{t.Name}}, </a></td>
   </tr>

现在我想用{/ 1>将TopicToCandidate的值重新设置为js

var topic= document.getElementById("TopicToCandidate+" + item.ID).innerText

但是topic为null,因为js无法将角度对象或HTML对象转换为js对象。

1 个答案:

答案 0 :(得分:0)

我不确定你是否了解angularjs在后台的作用。如果您已经在控制器中拥有该信息,请不要从DOM中提取信息。

换句话说,就像这样使用它:

app.controller('candidateController', function($scope) {
    $scope.CandidatesList = [
        {ID:1 , FirstName:"Dan1", LastName:"Doe1"},
        {ID:2 , FirstName:"Dan2", LastName:"Doe2"},
        {ID:3 , FirstName:"Dan3", LastName:"Doe3"}
    ];

    //get topic of first candidate for example
    var topic = $scope.getTopicToCandidate($scope.CandidatesList[0]);
}

您可能希望在angular docs中查看双向绑定。