javascript - 如何使对象/属性显示在指令中?

标签 javascript angularjs

这是我显示输入字段的指令:

JS:

 .directive('isField', function () {
    return {
        restrict: 'EA',
        template: '<div class="form-group">' +
      '<label class="col-sm-2 control-label">{{prop}}</label>' +
      '<div class="col-sm-10">' +
        '<label ng-if="obj.prop" class="control-label" style="font-weight:normal;">Yes</label>' +
        '<label ng-if="!obj.prop" class="control-label" style="font-weight:normal;">No</label>' +
      '</div>' +
    '</div>',
        scope: {
          obj: "@obj",
          prop: "@prop",
        },
        controller: function(){
        },
        link: function(scope,elem,attr,ctrl){
        }
    };
})

HTML:

<is-field obj="pano" prop="isOutRoom" class="ng-isolate-scope">
  <div class="form-group">
    <label class="col-sm-2 control-label ng-binding">isOutRoom</label>
    <div class="col-sm-10">
      <!-- ngIf: obj.prop -->
      <!-- ngIf: !obj.prop -->
      <label ng-if="!obj.prop" class="control-label ng-scope" style="font-weight:normal;">No</label>
      <!-- end ngIf: !obj.prop -->
    </div>
  </div>
</is-field>

但是 obj.prop 没有被评估,即使 obj.proptrue 指令也显示 No >.

示例 JSON:

pano:
{
  "objectId": "566f915b00b0814d65fa12e0",
  "isVirtualRoom": true,
}

我在指令的 scope: 部分做错了什么吗?

最佳答案

我认为错误出在你的模板中,并且恰好在 ng-if 中,你的模板应该是这样的

 .directive('isField', function () {
    return {
    restrict: 'EA',
    template: '<div class="form-group">' +
  '<label class="col-sm-2 control-label">{{prop}}</label>' +
  '<div class="col-sm-10">' +
    '<label ng-if="prop" class="control-label" style="font-weight:normal;">Yes</label>' +
    '<label ng-if="!prop" class="control-label" style="font-weight:normal;">No</label>' +
  '</div>' +
'</div>',
    scope: {
      obj: "@obj",
      prop: "@prop",
    },
    controller: function($scope){

    },
    link: function(scope,elem,attr,ctrl){
    }
};

})

这是一个worked demo

关于javascript - 如何使对象/属性显示在指令中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282631/

相关文章:

javascript - 如何使用 javascript 访问 HTML 元素的数据属性

javascript - html5表单提交问题

javascript - 在 angularjs 中停止选项卡更改上的 $interval

javascript - 如何使用 Angular JS 重新渲染 View

jquery - 为什么我会因为 jQuery 而出现 'failed to initiate app' 错误?

angularjs - watch 无法从服务中看到更改的变量

JavaScript 将矢量图形转换为光栅,但不转换为 Acrobat 文本

javascript - 共享点|根据相同的组合框状态更改组合框选项

javascript - 为什么在 deferred 中使用 setTimeout

angularjs - OAuth:如何设置动态回调URL?