角度值不是从函数反映出来的

时间:2017-11-17 13:32:25

标签: javascript angularjs

我正在尝试从控制器函数为$ scope变量赋值。我可以看到该值是从控制台分配的,但它没有反映在html页面中。

我的HTML

<div id="NodeDetails" class="NodeDetails">{{NodeDetails}}</div>

我的控制器功能

$scope.ShowDetails = function() {
    $scope.NodeDetails = "in am called in function";
    console.log($scope.NodeDetails)     
};

我可以在控制台中看到数据但是html中没有显示相同的数据。

当我放,

$scope.NodeDetails = "in am called in individual";

是否有任何特定的方法来设置函数中的变量。我也尝试过返回值,但这也没有用。

$scope.NodeDetails = function() {
return "in am called in function";  
};

请建议。

2 个答案:

答案 0 :(得分:0)

它应该以任何方式工作,这是不同类型的setter的一个例子

angular.module("app", []).controller("myCtrl", function($scope){
  $scope.val = "default value";
  
  $scope.change = function(){
    $scope.val = $scope.text;
    $scope.text ="";
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="myCtrl">
{{val}}
<input type="text" ng-model="text" placeholder="Add something"/>
<button ng-click="change()">Change</button>
</div>

答案 1 :(得分:0)

不是将NodeDetails创建为字符串,而是将其更改为对象并尝试更改它https://jsfiddle.net/paka2/d0mf0g9j/1/

<div id="NodeDetails" class="NodeDetails">{{nodeObject.NodeDetails}}</div>   
$scope.nodeObject = {
NodeDetails: ""
}

这解决了任何子范围问题

的问题