在没有$ scope的情况下创建指令AngularJS

彼德

我正在学习AngularJS。现在,我正在尝试使用这些指令。我创建了一个指令,但无法使其正常工作。我可以使用$ scope做到这一点,但我想知道如何不使用它。代码:

<div ng-app="myApp" ng-controller="controls">
    <div the-name></div>
</div>

<script src="angular.js"></script>

<script>
    var modu = angular.module("myApp", []);

    modu.controller("controls", [function() {
        var self = this;
        self.user = {
            name : "Pedro",
            lastname: "Delgado"
        };
    }]);

    modu.directive("theName", [function() {
        return {
            template: 'Name: {{user.name}}'
        };
    }]);
</script>

结果为:

Name: 

而且我要:

Name: Pedro

有人可以帮助我吗?非常感谢!

dfsq

这称为控制器即语法。您需要在模板中为控制器创建别名:

<div ng-app="myApp" ng-controller="controls as ctrl">
    <div the-name></div>
</div>

然后在指令模板中使用{{ctrl.user.name}}

但理想情况下,您要隔离指令的范围,因为您不希望它知道其周围环境以及使用了哪种controllerAs别名。

此版本的指令将更可重用:

modu.directive("theName", [function() {
    return {
        scope: {
            user: '='
        },
        template: 'Name: {{user.name}}'
    };
}]);

用法是:

<div ng-app="myApp" ng-controller="controls as ctrl">
    <div the-name user="ctrl.user"></div>
</div>

因此,在这种情况下,指令(和模板)对使用的环境一无所知(关于控制器前缀等),它只关心是否在其中传递了正确的用户对象。这就是孤立范围的要点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在没有$ rootScope的情况下访问“内部” $ scope

在没有$ scope的情况下从角度$ http获取数据

在指令顺序中,标记指令是否将在没有分支指令的情况下执行?

在没有编译器的情况下创建C函数会生成序言/结尾和RET指令?

AngularJs:在没有承诺的情况下取消路由解析

如何在没有ObjectNode的情况下创建ValueNode?

在没有远程的情况下创建git子模块

在没有MVVM框架的情况下创建子窗口

如何在没有PGID的情况下创建链接

在没有用户的情况下创建会话

在没有IDE的情况下创建EJB Jar

在没有Pylab的情况下创建Python直方图

在没有`get`的情况下创建相互引用的常量

如何在没有 ThreadGroup 的情况下创建线程?

有没有办法在没有字典的情况下创建哈希表?

在没有注释和没有Spring Boot的情况下创建KafkaListener

在没有“ for”的情况下跨行循环

在没有OnPaint的情况下失效

在没有initrd的情况下引导

在没有jQuery的情况下将模拟DOM事件传递给指令处理程序

在没有 MUL 指令的情况下将常量与 ARM 中寄存器的值相乘

在没有$ scope或$ watch的情况下跨Angular控制器访问函数

在没有Adobe Acrobat的情况下创建PDF文件(带有表格)吗?

可以在没有私有构造函数的情况下创建单例吗?

带有“无法在没有 QApplication 的情况下创建 QWidget”的 QmlPluginDump 错误

有没有办法在不创建循环的情况下运行此代码

有没有办法在不创建新对象的情况下链接Javascript函数?

如何在没有在分支上创建分支的情况下从分支创建拉取请求?

Apollo Server:如何在没有指令的情况下对所有“id:ID”字段进行后处理?