Angularjs 角度指令访问控制器-奇怪';未经预订的';消息

Angularjs 角度指令访问控制器-奇怪';未经预订的';消息,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我试图编写一个元素指令,将其附加到控制器上,以实现类似排序的行为。这是指令 .directive('sorting', function () { return { restrict: 'E', scope: false, // I know I can omit this with no effect template: function (elem, attr) { ret

我试图编写一个元素指令,将其附加到控制器上,以实现类似排序的行为。这是指令

.directive('sorting', function () {
        return {
            restrict: 'E',
            scope: false, // I know I can omit this with no effect
            template: function (elem, attr) {
                return '<div><a href ng-click="setsort('+"'"+attr.sortkey+"'"+')">'+attr.headtext+'</a></div>'+
                      '<div ng-show="sortfield=='+"'"+attr.sortkey+"' || sortfield='-"+attr.sortkey+"'"+
                      '" ng-class="{'+"'sortreverse':sortreverse}"+'">&#9650;</div>';
                  }
            }
        });
有趣的事实:错误的第一行实际上是angularjs拼错的(应该是
assign
而不是
assing

最后一行是指令生成的输出的一部分,如下调用:

<sorting sortkey="yn_equivalent" headtext="SomeText"></sorting>

我对Angularjs不是很有经验,所以也许你需要更多的反馈,我很乐意给你

有什么线索吗


谢谢。

在您的
ng show
中,OR运算符后的比较缺少等号。您可能应该对这两种情况都使用
=

ng show
中,OR运算符后的比较缺少等号。对于这两个函数,您可能都应该使用
=

为了可重用性,您应该使用带有
&
的隔离作用域来调用父作用域函数。这也将使您从混乱的模板字符串连接中解脱出来。这听起来是一个很好的建议。你能提供一个链接让我看一下吗?这里有一个来自egghead.io的视频为了可重用性,你应该使用带有
&
的隔离作用域来调用父作用域函数。这也将使您从混乱的模板字符串连接中解脱出来。这听起来是一个很好的建议。你能提供一个链接让我看一下吗?这是来自egghead.io的视频。如果你选择了答案,我会得到年度最佳盲人的价格。谢谢。三重
==
是不必要的。如果您选择了答案,我将获得年度
盲板的价格。谢谢。不需要三重
==
<sorting sortkey="yn_equivalent" headtext="SomeText"></sorting>