Football-Is-My-Life
Football-Is-My-Life

Reputation: 1437

initialized without binding with angular

I need to initialized without binding.

I've tried the following. But I did not succeed

$scope.emptyRow = $scope.newsCategories[1];
$scope.newsCategories[1].Name = "yes";
$scope.emptyRow.Name = "test";
alert($scope.emptyRow.Name); // alert => test
alert($scope.newsCategories[1].Name);// alert => test

I need this :

$scope.emptyRow = $scope.newsCategories[1];
$scope.newsCategories[1].Name = "yes";
$scope.emptyRow.Name = "test";
alert($scope.emptyRow.Name); // alert => test
alert($scope.newsCategories[1].Name);// alert => yes

How to do this?

Upvotes: 0

Views: 30

Answers (1)

Matt Way
Matt Way

Reputation: 33161

This has nothing to do with binding, but rather basic javascript.

The line: $scope.emptyRow = $scope.newsCategories[1];

is explicitly saying that you want $scope.emptyRow and $scope.newsCategories[1] to be pointing to the exact same object. Hence, when you change a child value of either (like Name), it will effect the other.

It looks like you want to be able to copy the object in question. For that you can use angular.copy(). An example use in your case would be:

$scope.emptyRow = angular.copy($scope.newsCategories[1]);

Read here for more info.

Upvotes: 2

Related Questions