Monday, May 13, 2024
 Popular · Latest · Hot · Upcoming
40
rated 0 times [  42] [ 2]  / answers: 1 / hits: 17113  / 10 Years ago, fri, march 28, 2014, 12:00:00

I'm new to Angularjs and im trying to update two $scope variables in two seperate functions which are called on ng-click.



Even though the variables update, they wont rebind in the view.



HTML



<div ng-app=>
<div ng-controller=MainCtrl>
<p> <a href=# ng-click=getDetails();getElse()>Refresh</a> </p>
<p ng-controller=MainCtrl><span ng-bind=something></span></p>
<p ng-controller=MainCtrl><span ng-bind=somethingelse></span></p>
</div>
</div>


JS
function MainCtrl($scope) {



$scope.something = something;
$scope.somethingelse = else;

$scope.getDetails = function () {
alert(getdetails before change: +$scope.something);
$scope.something = 'changed';
alert(getdetails: +$scope.something);
};

$scope.getElse = function () {
alert(getElse before change: +$scope.somethingelse);
$scope.somethingelse = 'changed';
alert(getElse: +$scope.somethingelse);
};

}


I've created a fiddle to show you what i mean: http://jsfiddle.net/M3pZ8/



can anyone tell me what is the correct way to do this?



Thanks in advance.


More From » angularjs

 Answers
1

It's because you have MainCtrl declared 3 times, effectively creating 3 separate scopes. You only need it once, at the top.



<div ng-controller=MainCtrl>
<p> <a href=# ng-click=getDetails();getElse()>Refresh</a> </p>
<p><span ng-bind=something></span></p>
<p><span ng-bind=somethingelse></span></p>
</div>

[#71726] Thursday, March 27, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
ronaldo

Total Points: 694
Total Questions: 85
Total Answers: 103

Location: Somalia
Member since Mon, Feb 27, 2023
1 Year ago
;