Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
260 views
in Technique[技术] by (71.8m points)

angularjs - $scope.myFunc() is not a function

I'm trying to ng-bind $scope.span00, span01, span10, and so on in a grid.

$scope.span01 = 'test'; // this works fine

Now for the ng-click...

$scope.clickedOn = function(row, column) {

  var gridLocation = function() { return 'span'.concat(row).concat(column); } // returns span01
  $scope.gridLocation() = 'test'; // says $scope.gridLocation() is not a function.
}

It's saying it's not a function. What do I do here?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Because the function does not exist on $scope. This is what you need to do:

$scope.gridLocation = function (row, column) {
    return 'span'.concat(row).concat(column);
};

$scope.clickedOn = function (row, column) {
    $scope.gridLocation(row, column);
};

Edit

To do what you asked for in the comments (I hope I understood correctly):

$scope.clickedOn = function (row, column) {
    $scope[$scope.gridLocation(row, column)] = 'test';
};

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...