javascript - Angular,将参数从 View 传递到指令

标签 javascript angularjs angularjs-directive

我对 Angular 和 Javascript 很陌生,所以也许这是一个愚蠢的问题......

我需要将信息从 Controller (route.id) 传递到 View ,以便由将被转换为其他指令的指令进行解释。抱歉,但我无法更好地解释。我已经做了代码简化:

index.html

<div ng-app="myapp" ng-ctrl="myctrl">
   <adir aattr="{{param}}" >
   </adir>
</div>

myapp.js:

angular.module("myapp",[])
    .controller('myctrl',function(){
       param="bye"
    })
    .directive('oldie', function() {
        return{
            restrict:"E",
            template: function(elem,attr) {
                 return "<div >Hello "+ attr.battr +" </div>"
            }
        }
    })
    .directive('adir', function() {
        return {
            restrict:"E",
            template: function(elem,attr){
                return "<oldie battr={{" + attr.aattr + "}}></oldie>"
            }
        }  
    });

我需要的是将 param 的内容赋予要在指令中使用的属性。

我已经做了一个 jsfiddle 来玩: jsfiddle

提前致谢,

最佳答案

您的代码中有几个地方错误。

  1. 您使用了“ng-ctrl”而不是ng-controller。所以, Controller 根本不起作用。

     <div ng-app="myapp" ng-controller="myctrl">
    
  2. 您尚未在 Controller 中定义 $scope 变量。

    .controller('myctrl',function($controller){
    
  3. 在第一个指令中,在模板中设置属性时不必使用 Angular 表达式 {{}}。它可以是一个普通的字符串。

    return "<oldie battr=" + attr.aattr + "></oldie>"
    

Here是 fiddle 。

此方法的另一种替代方法是通过隔离范围内的绑定(bind)来访问属性。

请参阅 this 上的指令定义对象部分文章。

关于javascript - Angular,将参数从 View 传递到指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318977/

相关文章:

javascript - 合并两个数组并创建一个单独的数组

javascript - 无法从客户端发出套接字消息

javascript - ng-click AngularJS 中的 JS 多重表达式

javascript - 仅在 dom 中禁用该属性的情况下选择元素

javascript - Angularjs 指令附加 $http 请求

javascript - 客户端上的格式化日期时间会在表单发布上发送默认日期值

javascript - jQuery 日期选择器不适用于 ajax 生成的输入字段

javascript - 从复选框创建搜索过滤器数组(Ionic Framework)

angularjs - 构建 Rails 和 Angular 应用程序

angularjs - Angular(指令新手): How to add date time-picker to ngModel so that it can be validated?