如何让子指令“$ watch”父范围?

时间:2015-12-11 01:00:42

标签: javascript angularjs

我正在尝试让一个子指令监听父指令范围的变化;然而,“$ watch”并没有成功。我觉得我错过了很简单的事情。

代码的前提是监听选择的更改并从对象获取属性并将其传递给child指令。我正在使用范围。$ parent。$ watch但这不起作用。有任何想法吗?

_someMemberVariable

1 个答案:

答案 0 :(得分:0)

我想出来了。在使用数据设置变量之后需要运行范围。$ apply()。原因范围不是监听是因为我在jQuery函数中设置范围。

            link : function( scope, elem, attrs ){
            //on select change get the attribute selections
            elem.find( "select" ).on( "change", function( vent ){
                var select, option, attribute_id, selections;                   
                select = angular.element( this );
                option = select.find( "option:selected" );      
                attribute_id = parseInt( option.val() );    
                //get the selections off array      
                scope.selections = _.first( 
                    _.where( scope.options, { id : attribute_id }) 
                ).selections;
                //!!APPLY!!!!
                scope.$apply();
            });
        }