Javascript ng不可与Google地图中的ng if绑定

Javascript ng不可与Google地图中的ng if绑定,javascript,angularjs,google-maps,angularjs-directive,angular-google-maps,Javascript,Angularjs,Google Maps,Angularjs Directive,Angular Google Maps,所以我读了 我了解了ng non bindable在指令中的用法 我的问题是,我试图使用ng if在我的标记信息窗口中有条件地显示一些图标。ng if不能与ng non bindable一起工作,当然,没有它,信息窗口也不能工作 如果有人能告诉我如何使ng If在这种情况下工作,或给出一个替代解决方案,我将不胜感激 <ui-gmap-windows show="show"> <div ng-non-bindable>{{obj.name

所以我读了 我了解了ng non bindable在指令中的用法

我的问题是,我试图使用ng if在我的标记信息窗口中有条件地显示一些图标。ng if不能与ng non bindable一起工作,当然,没有它,信息窗口也不能工作

如果有人能告诉我如何使ng If在这种情况下工作,或给出一个替代解决方案,我将不胜感激

      <ui-gmap-windows show="show">
            <div ng-non-bindable>{{obj.name}}<br>{{distance}} miles
            <span class="ion-man" ng-if="obj.men"></span>
          <span class="ion-woman" ng-if="obj.women"></span>
            <span class="ion-ios-people" ng-if="obj.people"></span>  
            </div>                     
          </div>
      </ui-gmap-windows>

{{obj.name}}
{{distance}}英里
它不起作用的原因是,
ng if
600
)的优先级低于
ng non-bindable
1000
),而
ng non-bindable
终端:true
,因此
ng if
从不编译,因为
ng non-bindable
的终端性质。您可以尝试直接在具有
ng non-bindable
的元素上使用
ng switch
1200
),因为它具有更高的优先级,但如果您可能有多个条件为真,则不确定这是否适用于您的情况

您也可以创建自己的指令,比如my non bindable,并使用配置定义它,
{priority:599,terminal:true}
,如果使用
ng,则使用它,比如:

.directive('gmapTemplate', function() {
  return {
    priority: 599,
    terminal: true
  };
});
如果
,则与
ng一起使用

<div gmap-template ng-if="someCond">{{obj.name}}<br>{{distance}} miles
angular.module('app',[]).directive('gmapNonBindable',function(){
返回{
优先:599,
终端机:对
};
});

显示-->
{{test}}

您需要在ui gmap windows指令中使用templateUrl和templateParameter属性。templateUrl是要传递的对象的属性,该对象是一个字符串,该字符串是要使用的.html模板的路径。templateParameter是要传递的对象的属性,该对象包含要传递的参数。请参阅下面的代码。您也可以在此处参考文档:


然后在html模板中,如果没有问题,可以使用ng

注意,您必须引用传递给templateParameter的对象作为html模板中的参数,以便

pathToHtmlTemplate.html文件如下所示

<div>
    {{parameter.name}}<br>{{parameter.distance}} miles
    <span ng-if="parameter.womens_restroom" class="ion-woman"></span>
</div>

{{parameter.name}
{{{parameter.distance}}英里
您可以用ng if将其包装在另一个div中?或者用ng non bindable将div的内容包装在一个span中?我需要每个都是conditionalOk。我的意思是,
{{obj.name}}
{{distance}}英里
是的,这可能行得通——我必须重复几次才能满足每个条件,这感觉有点尴尬,但不管怎样都行……谢谢
<ui-gmap-windows  idKey="'name'" show="show" templateUrl="'pathToHtmltemplate.html'" templateParameter="'{name: 'name', distance: 1.3, womens_restroom: true}'">
</ui-gmap-windows>
<div>
    {{parameter.name}}<br>{{parameter.distance}} miles
    <span ng-if="parameter.womens_restroom" class="ion-woman"></span>
</div>