我正在尝试从控制器函数为$ 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";
};
请建议。
答案 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: ""
}
这解决了任何子范围问题
的问题