这是我从html页面调用的html方法:
data-ng-click="handleNav('{{subItem.module}}','{{subItem.url}}')">{{subItem.name}}</a>
从用户的角度来看,源代码看到了这一点:
data-ng-click="handleNav('Mod1','inserts/Pages/Default')" class="ng-binding">Sub 1</a>
然而在我的孩子控制器发出呼叫:
$scope.handleNav = function (args1, args2) {
console.log(args1);
console.log(args2);
$scope.$emit('changeView', (args1, args2));
};
.....这些是控制台日志的值:
{{subItem.module}}
{{subItem.url}}
.....应该是什么时候:
Mod1
inserts/Pages/Default
谁能看到我做错了什么?
由于
答案 0 :(得分:1)
您正在尝试为ng-click插入({{x}}
)变量,但它不需要它。想想ng-click就像javascript代码一样。它可以访问您的范围变量等。
要解决问题,请删除'
和{{
以及}}
<a data-ng-click="handleNav(subItem.module, subItem.url)">{{subItem.name}}</a>
答案 1 :(得分:0)
您将值放在单引号中,这是不评估表达式的指标。因此,变量作为字符串而不是它们的值传递
答案 2 :(得分:0)
我找到了解决方案:
data-ng-click="handleNav(subItem.module,subItem.url)">{{subItem.name}}</a>
最奇怪的是,因为如果我没有使用$ emit并且在子控制器中处理导航的实际功能一切都会很好,并且处理此导航的父控制器中的函数基本上与儿童控制器。