javascript - angularjs 条件 href

标签 javascript angularjs

谁能告诉我如何执行条件 href 而不是复制 a 标签来执行隐藏/显示。

这就是我在这里尝试做的事情,如果 DisplayLocation 为空,则使用字符串“未知”,否则使用位置。我试过 x 之类的东西? y :“未知”,但我认为这在 href 中不起作用。

<a class="btn-main orange" href="#!/movie-details/
   {{movie.Item.DisplayLocation | prettify}}/
   {{movie.Item.Title | prettify}}/{{movie.Item.Id}}" 
   id="view--{{$index}}"> View
</a>

修复:

<a class="btn-main orange" data-ng-href="#!/movie-details/
   {{movie.Item.DisplayLocation ? 
       movie.Item.DisplayLocation : 'unknown' | prettify}}/
   {{movie.Item.JobTitle | prettify}}/
   {{movie.Item.Id}}" 
   id="view--{{$index}}">View
</a>

最佳答案

您可以改为在您的 Controller 中创建一个函数,然后在您的绑定(bind)中使用该函数。

Controller :

$scope.returnConditionalDisplayLocation = function returnConditionalDisplayLocationFn() {
    return $scope.movie.Item.DisplayLocation ? 
           $scope.movie.Item.DisplayLocation : "unknown";
}

HTML:

<a class="btn-main orange" 
   href="#!/movie-details/{{returnConditionalDisplayLocation() | prettify}}/
   {{movie.Item.Title | prettify}}/{{movie.Item.Id}}" id="view--{{$index}}"> View
</a>

这样您就可以将逻辑分离到它所属的 Controller 中,同时清理您的 HTML!

编辑:

使用 href 是可以的,但是如果用户在 Angular 有时间呈现 href 的绑定(bind)值之前点击链接,那么他们将到达一个错误的 url .

因此你想根据 Angulars Documentation 使用 ng-href

和上面一样,你会这样写:

<a class="btn-main orange" ng-href="#!/movie-details/
   {{returnConditionalDisplayLocation() | prettify}}/
   {{movie.Item.Title | prettify}}/{{movie.Item.Id}}" 
   id="view--{{$index}}"> View
</a>

关于javascript - angularjs 条件 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004612/

相关文章:

javascript - Angular .min.js :118 Error: [ng:areq]

javascript - Angular 在 'ng-invalid' 字段上自动添加 'required' 类

javascript - 从 AngularJs 中的 Controller 中读取任何内容

javascript - Angular js中嵌入后的链接功能

javascript - Angular JS 中的按钮单击事件

javascript - 访问指令的所有 Controller

javascript - d3.js 更新带按钮的条形图工具提示

javascript - 从 Ember 的内部函数访问 View 函数

c# - 分组为数组

angularjs 更改对 ng-model 更改的看法