Angularjs-访问控制器中的javascript对象
我有一个简单的自定义指令,其中一个属性是javascript对象。我尝试了多种方法从控制器访问对象,但运气不佳 index.html中的自定义指令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
<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'
};
});