标签: angularjs-directive

AngularJS中指令范围内的'@'和'='有什么区别?

我仔细阅读了关于该主题的AngularJS文档,然后使用指令进行了调整.这是小提琴.

以下是一些相关的片段:

我有几件事没有得到:

  • 我为什么要使用"{{title}}"'@'"title"使用'='
  • 我是否也可以直接访问父作用域,而无需使用属性装饰我的元素?
  • 文档说"通常需要通过表达式将数据从隔离范围传递到父范围",但这似乎也适用于双向绑定.为什么表达路线会更好?

我找到了另一个显示表达式解决方案的小提琴:http://jsfiddle.net/maxisam/QrCXh/

angularjs angularjs-directive angularjs-scope isolated-scope

1053
推荐指数
10
解决办法
53万
查看次数

如何设置焦点在输入字段?

在AngularJS中设置焦点到输入字段的"角度方式"是什么?

更具体的要求:

  1. 当一个模态被打开时,预定义的焦点设置<input>此模态中.
  2. 每次<input>变得可见(例如,通过单击某个按钮),将焦点设置在它上面.

我试图达到第一个要求autofocus,但只有当模态被打开的第一次,只有在特定的浏览器(如Firefox中这是行不通的)这个作品.

任何帮助将不胜感激.

angularjs angularjs-directive

753
推荐指数
15
解决办法
58万
查看次数

链接vs编译与控制器

创建指令时,可以将代码放入编译器,链接函数或控制器中.

在文档中,他们解释说:

  • 编译和链接功能用于角度循环的不同阶段
  • 控制器在指令之间共享

但是,对我而言,目前尚不清楚哪种代码应该去哪里.

例如:我可以在编译中创建函数并将它们附加到链接中的作用域,还是仅将函数附加到控制器中的作用域?

如果每个指令都有自己的控制器,控制器如何在指令之间共享?控制器是真的共享还是只是范围属性?

angularjs angularjs-directive

525
推荐指数
6
解决办法
23万
查看次数

何时支持ng-if与ng-show/ng-hide?

我理解ng-showng-hide影响元素上的类集,并ng-if控制元素是否作为DOM的一部分呈现.

有没有对选择的准则ng-ifng-show/ ng-hide或反之亦然?

angularjs angularjs-directive

511
推荐指数
6
解决办法
20万
查看次数


如何在AngularJS中使用按键事件?

我想在下面的文本框中捕获回车键按下事件.为了更清楚,我使用a ng-repeat来填充tbody.这是HTML:

<td><input type="number" id="closeqty{{$index}}" class="pagination-right closefield" 
    data-ng-model="closeqtymodel" data-ng-change="change($index)" required placeholder="{{item.closeMeasure}}" /></td>
Run Code Online (Sandbox Code Playgroud)

这是我的模块:

angular.module('components', ['ngResource']);
Run Code Online (Sandbox Code Playgroud)

我正在使用资源填充表,我的控制器代码是:

function Ajaxy($scope, $resource) {
//controller which has resource to populate the table 
}
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui angularjs-directive

404
推荐指数
7
解决办法
45万
查看次数

如何从AngularJS中具有自己的范围*的自定义指令*中访问父作用域?

我正在寻找任何方式访问指令中的"父"范围.范围,转换,要求的任何组合,从上面传递变量(或范围本身)等.我完全愿意向后弯腰,但我想避免一些完全hacky或不可维护的东西.例如,我知道我现在可以通过$scope从preLink参数中获取并迭代它的$sibling范围来找到概念性的"父".

我真正想要的是能够$watch在父范围内表达.如果我能做到这一点,那么我可以完成我在这里要做的事情: AngularJS - 如何使用变量渲染部分?

重要的一点是,该指令必须可以在同一父范围内重复使用.因此默认行为(范围:false)对我不起作用.我需要每个指令实例的单独范围,然后我需要$watch一个存在于父范围内的变量.

代码示例值1000个单词,因此:

app.directive('watchingMyParentScope', function() {
    return {
        require: /* ? */,
        scope: /* ? */,
        transclude: /* ? */,
        controller: /* ? */,
        compile: function(el,attr,trans) {
            // Can I get the $parent from the transclusion function somehow?
            return {
                pre: function($s, $e, $a, parentControl) {
                    // Can I get the $parent from the parent controller?
                    // By setting this.$scope = $scope from within that controller?

                    // …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

323
推荐指数
4
解决办法
26万
查看次数

如何使用Angular JS设置bootstrap navbar活动类?

如果我在引导程序中有一个带有项目的导航栏

Home | About | Contact
Run Code Online (Sandbox Code Playgroud)

如何为每个菜单项激活时设置活动类?也就是说,如何设置class="active"角度路径的时间

  1. #/ 为了家
  2. #/about 对于关于页面
  3. #/contact 对于联系页面

javascript navbar twitter-bootstrap angularjs angularjs-directive

306
推荐指数
9
解决办法
23万
查看次数

如何调用AngularJS指令中定义的方法?

我有一个指令,这里是代码:

.directive('map', function() {
    return {
        restrict: 'E',
        replace: true,
        template: '<div></div>',
        link: function($scope, element, attrs) {

            var center = new google.maps.LatLng(50.1, 14.4); 
            $scope.map_options = {
                zoom: 14,
                center: center,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            // create map
            var map = new google.maps.Map(document.getElementById(attrs.id), $scope.map_options);
            var dirService= new google.maps.DirectionsService();
            var dirRenderer= new google.maps.DirectionsRenderer()

            var showDirections = function(dirResult, dirStatus) {
                if (dirStatus != google.maps.DirectionsStatus.OK) {
                    alert('Directions failed: ' + dirStatus);
                    return;
                  }
                  // Show directions
                dirRenderer.setMap(map);
                //$scope.dirRenderer.setPanel(Demo.dirContainer);
                dirRenderer.setDirections(dirResult);
            };

            // Watch
            var updateMap = …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

294
推荐指数
7
解决办法
32万
查看次数

在AngularJS中有条件地应用属性的最佳方法是什么?

我需要能够根据范围内的布尔变量向元素添加"contenteditable".

使用示例:

<h1 attrs="{'contenteditable=\"true\"': editMode}">{{content.title}}</h1>
Run Code Online (Sandbox Code Playgroud)

如果$scope.editMode设置为,则会导致将contenteditable = true添加到元素中true.有没有一些简单的方法来实现这样的ng-class属性行为?我正在考虑写一个指令并分享,如果没有.

编辑: 我可以看到我提出的attrs指令和ng-bind-attrs之间似乎有一些相似之处,但它在1.0.0.rc3中删除了,为什么会这样呢?

angularjs angularjs-directive

288
推荐指数
9
解决办法
27万
查看次数