如何使用"factory" "angular $scope function"



我想让角控制器传递参数($scope)

$scope.setName = function()不工作,

我怎样才能……请~

脚本

var myApp = angular.module("myApp", []);
myApp.factory('Data', function() {
  return {
    name: "Ting"
  }
});
myApp.controller('FirstCtrl', function($scope, Data) {
  $scope.data = Data;
  $scope.setName = function() {
    Data.name = "Jack";
  }
});
myApp.controller('SecondCtrl', function($scope, Data) {
  $scope.data = Data;
  $scope.setName = function() {
    Data.name = "Moby";
  }
});
html

<body ng-app='myApp'>
    <input type="text" ng-model="person.name"/>
      <div ng-controller="FirstCtrl">
      {{person.name}}
      <button ng-click="setName()">set name to jack</button>
      </div>
      <div ng-controller="SecondCtrl">
      {{person.name}}
      <button ng-click="setName()">set name to jack</button>
      </div>
    </div>
</body>

工作正常。

您正在打印模型而不是服务。

由于service是单例的,在控制器上进行更改,它将为每个活动的控制器更改

var myApp = angular.module("myApp", []);
myApp.factory('Data', function() {
  return {
    name: "Ting"
  }
});
myApp.controller('FirstCtrl', function($scope, Data) {
  $scope.data = Data;
  $scope.setName = function() {
    Data.name = "Jack";
  }
});
myApp.controller('SecondCtrl', function($scope, Data) {
  $scope.data = Data;
  $scope.setName = function() {
    Data.name = "Moby";
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app='myApp'>
    <input type="text" ng-model="person.name"/>
      <div ng-controller="FirstCtrl">
      {{data.name}}
      <button ng-click="setName()">set name to jack</button>
      </div>
      <div ng-controller="SecondCtrl">
      {{data.name}}
      <button ng-click="setName()">set name to jack</button>
      </div>
    </div>
</body>

相关内容

最新更新