Angular.js ui-sref没有创建超链接

时间:2016-01-28 13:07:10

标签: angularjs templates angular-ui-router ui-sref

我知道这个问题可能很愚蠢,但在搜索了整个stackoverflow和其他博客以及视频教程之后,除了在stackoverflow上询问这个问题之外我别无选择。 我一直在通过在线教程学习Angular.js。

  

我有2个文件。    index.html和app.js

以下是我的代码的一些快照。

  

app.js中的状态配置部分

angular.module('flapperNews', ['ui.router']).config(['$stateProvider','$urlRouterProvider',function($stateProvider, $urlRouterProvider) {$stateProvider
    .state('home', {
        url: '/home',
        templateUrl: '/home.html',
        controller: 'MainCtrl'
    })
    .state('posts', {
        url: '/posts/{id}',
        templateUrl: '/posts.html',
        controller: 'PostsCtrl'
    })

$urlRouterProvider.otherwise('home')}]);
  

index.html内的内联模板(1-home.html,2-posts.html)

<ui-view></ui-view>
<script type="text/ng-template" id="/home.html">
  <!--home.html part-->
</script>
 <script type="text/ng-template" id="/posts.html">
  <!--posts.html part-->
</script>

在home.html内我有一个关于评论的超链接。

<div ng-repeat="post in posts | orderBy:'-upvotes'">
  <span class="glyphicon glyphicon-thumbs-up"
    ng-click="incrementUpvotes(post)"></span>
  {{post.upvotes}}
  <span style="font-size:20px; margin-left:10px;">
    <a ng-show="post.link" href="{{post.link}}">
      {{post.title}}
    </a>
    <span ng-hide="post.link">
      {{post.title}}
    </span>
    <span>
      <a ui-sref="/posts/{{$index}}">Comments</a>
    </span>
  </span>
</div>

现在,当我在本地主机上运行此WebApp时,它显示了我的注释超链接的这个呈现的html,但它没有提供任何导航(超链接不起作用)。

<span>
     <a ui-sref="/posts/0">Comments</a>
</span>

现在,我有两个问题:

  1. ui-sref part出了什么问题。当我使用href代替ui-sref时,它工作得很好。为什么会发生这种情况?
  2. 我一直在使用home.html和posts.html的内嵌模板,但如果我将它们分成单独的文件,那么我的整个应用程序都会被破坏。为什么?
  3. 任何帮助都会很有意义。

1 个答案:

答案 0 :(得分:2)

1)你使用... #include <pthread.h> void exitError() { write(2, "Error!\n", 7); exit(1); } void *doThread(void* args) { long rnd = (long)args; printf("Random number = %ld", rnd); sleep(rnd); pthread_exit((void *)0); } int main (int argc, const char * argv[]) { int pid, n, piped[2]; pipe(piped); if ((pid=fork()) == -1) { write(1, "Error!\n", 4); exit(1); } else if (pid == 0) { //son int nThreads; close(piped[1]); read(piped[0], &nThreads, 2); printf("\nI have to create %d threads\n\n", nThreads); pthread_t *threads; threads = (pthread_t *) malloc(nThreads*sizeof(pthread_t)); int random; random = rand(); pthread_create(&threads[nThreads], NULL, doThread, random); sleep(nThreads); exit(0); } else { //father signal(SIGALRM, exitError); alarm(10); if (argc != 2) { write(1, "Command error!\n", 24); } int fd = open(argv[1], O_RDONLY); char buf[1]; n = read(fd, buf, 1); int nThreads = atoi(buf); printf("I say %d to my son\n", nThreads); close(piped[0]); write(piped[1], &nThreads, 2); wait(NULL); alarm(0); exit(0); } return 0; } 的方式是导致它破坏的原因。在你的应用程序中试试这个,

ui-sref

2)假设您的新模板文件与index.html和app.js的级别相同,则无需提及<a ui-sref="posts({ id: $index })">Comments</a> ,只需使用templateUrl: '/posts.html'