将值插入模板AngularJS

时间:2013-02-06 16:43:44

标签: javascript html angularjs

我有一个标志我设置为true / false,这会改变页面上某些项目的显示方式。我遇到了一些麻烦,将价值纳入我的模板并让它真正起作用。普通的HTML(不在模板内)工作正常。

restrict: 'E',
        scope: {
            speedDirection: "@",
            speedName: "@",
            value: "@",
            editElements: "="
        },
        template:
        '<div>'+
          '<p class="body-text">{{speedDirection}} '+
          '<input type="text" name="{{speedName}}" value="{{value}}" ng-show="editElements">'+
          '<span ng-hide="editElements">{{value}}</span>'+
          '</p>'+
        '</div>',

我想使用editElements的动态模型值,而不仅仅是传递的值。这样,当它改变时,它将反映所显示模板中的更新。变量在我存储测试数据的对象中定义:

function MyObject($scope) {
    $scope.editElements = true;

有什么方法可以让它发挥作用吗?我尝试使用“@”和{{editElement}}位等传递它(如上所述)。自定义HTML部分:

<speed-limit speed-direction="A to B:"
                    speed-name="reverse"
                    value="{{newObject.speedLimit[0]}}"
                    editElement="editElements">
                    </speed-limit>

更新:我已经安装了Batarang,它显示了我的自定义元素(速度限制)的特定部分,以便“editElement:null”。但是,引用的其他区域editElements已正确设置。这是一些奇怪的范围问题吗?

1 个答案:

答案 0 :(得分:2)

正如评论中所讨论的,同名可以用于属性的名称,但它必须是蛇形的,因此edit-elements =“editElements”:

<speed-limit speed-direction="A to B:"
     speed-name="reverse"
     value="{{newObject.speedLimit[0]}}"
     edit-elements="editElements">
</speed-limit>

不要为此感到难过......我认为每个Angular开发人员都至少浪费了一个小时(或更长时间)的生命。

相关问题