angular js$scope变量与字符串绑定

angular js $scope variable binding with string

本文关键字:字符串 绑定 变量 scope js angular      更新时间:2024-05-13

Angular没有意识到,当我把model(string)和$scope放在一起形成$scope.model时,它确实是一个定义的范围变量。有没有办法不让model成为字符串,这样$scope.model就会真正引用我需要它引用的内容?

$scope.games = [];
    $scope.maxplayers = 0;
    $scope.minplayers = 0;
........
function setupWatcher(model){
  $scope.$watch(model,function(){
    console.log($scope.model);  // prints out undefined
    if(!$scope.model) return;


    $http.get('/api/games?'+ model + '=' + $scope.model)
      .success(function(data){
        $scope.games = data;
      })
      .error(function(data){
        console.log('Error' + data);
      });
  });
}
angular.forEach(['maxplayers',' minplayers'],setupWatcher);

使用括号表示法:

$scope[model]

是的,你应该这样做

$scope[model]

您可以通过任一方式访问对象属性

var propName = 'prop3',
  myObject = {
    prop1: "123",
    prop2: "456",
    prop3: "789"
};
myObject.prop1 // 123
myObject['prop2'] // 456
myObject[propName] // 789