Angularjs-访问控制器中的javascript对象

Angularjs-访问控制器中的javascript对象,javascript,angularjs,angularjs-directive,controller,scope,Javascript,Angularjs,Angularjs Directive,Controller,Scope,我有一个简单的自定义指令,其中一个属性是javascript对象。我尝试了多种方法从控制器访问对象,但运气不佳 index.html中的自定义指令 <schedule person = "person" day="july25">July 25</schedule> 在链接功能中,我可以访问日志中验证的对象。基于对类似问题的其他回答,我尝试将对象保存在范围中的新属性中 但是,在控制器中,当我访问$scope.person或$scope.iperson将它们发送到to

我有一个简单的自定义指令,其中一个属性是javascript对象。我尝试了多种方法从控制器访问对象,但运气不佳

index.html中的自定义指令

 <schedule person = "person" day="july25">July 25</schedule> 
链接
功能中,我可以访问日志中验证的对象。基于对类似问题的其他回答,我尝试将对象保存在范围中的新属性中

但是,在
控制器
中,当我访问
$scope.person
$scope.iperson
将它们发送到
toggle()
函数时,我会收到一个
未定义的
错误


奇怪的是,从
this.setClass
接收到的
ng class
表达式工作正常,它正在访问
person

运行您的代码,它缺少一个“}”(您缺少的“this.toggle”函数)。在那之后,它似乎对我来说运行良好,所以请检查它,并提供和更新
<a href="#" ng-click=scheduledirctrl.calltoggle() ng-class={{scheduledirctrl.setClass}}>July 25</a>
angular.module('scheduleDirective', [])

.directive('schedule', function() {

  return {
    restrict: 'E',
    scope: {
      iperson: '=person',
          day: '=',
    },
    templateUrl: 'schedulepartial.html',

    link: function(scope, element, attributes){

        console.log("link person name "+scope.iperson.name);
        scope.person = scope.iperson;
    },

    controller: function($scope, $element,$attrs,$http){

            $scope.day = $attrs.day
            this.calltoggle = function() {
                this.toggle($scope.person, $scope.day);
            }

            this.setClass = "{'active' : person." + $attrs.day + ", 'btn-primary' : person." + $attrs.day + " }";

        this.toggle = function(person,day){         
              console.log("toggle" + person.name + day);
    },
    controllerAs: 'scheduledirctrl'
  };
});