Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
  <div ng-app="myApp">
    <div ng-controller="myController1 as cont1">
      <ul>
        <li><b>myController1</b> (values won't change)</li>
        <li>{{cont1.stringValue}}</li>
        <li>{{cont1.objectValue}}</li>
      </ul>
    </div>    
    
    
    
    <div ng-controller="myController2 as cont2">
      <ul>
        <li><b>myController2</b> (values will change when Set Values is clicked or when 2-way binding textbox is modified)</li>
        <li>{{cont2.stringValue}}</li>
        <li>{{cont2.objectValue.data}}</li>
      </ul>
      <input type="text" ng-model="cont2.newValue"></input>
    <button ng-click="cont2.setString(newValue)">Set Values</button><br/>
    <input type="text" ng-model="cont2.objectValue.data"></input>2-way binding to objectValue
  </div>
  </div>   
</body>
</html>
 
var app = angular.module('myApp', []);
app.service('sharedProperties', function() {
    var stringValue = 'test string value';
    var objectValue = {
        data: 'test object value'
    };
    
    return {
        getString: function() {
            return stringValue;
        },
        setString: function(value) {
            stringValue = value;
        },
        getObject: function() {
            return objectValue;
        }
    }
});
app.controller('myController1', function($timeout, sharedProperties) {
    var vm = this;
    vm.stringValue = sharedProperties.getString();
    vm.objectValue = sharedProperties.getObject().data;    
    
    
});
app.controller('myController2', function(sharedProperties) {
    
    var vm = this;
    vm.stringValue = sharedProperties.getString();
    vm.objectValue = sharedProperties.getObject();
  
    vm.setString = function(newValue) 
    {
            console.log(newValue);
        vm.objectValue.data = newValue;
        sharedProperties.setString(newValue);
    };
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers