‫۱۰ سال و ۶ ماه قبل، پنجشنبه ۱۴ فروردین ۱۳۹۳، ساعت ۱۸:۰۹
چک کنید ببینید در قسمت کدهای HTML ، ویژگی ای به نام ng-controller که به کنترلر شما اشاره کند وجود نداشته باشد
‫۱۰ سال و ۶ ماه قبل، چهارشنبه ۶ فروردین ۱۳۹۳، ساعت ۰۴:۳۳
مشکلی رخ نداد.
1 - ماژول مسیریابی (ngRoute) رو باید تزریق کنید به ماژول اصلی :
var myFirstRoute = angular.module('myFirstRoute', ['ngRoute']);
2- route$ رو به کنترلر هم تزریق کنید :
myFirstRoute.controller('ShowPage1Controller', function ($route) {
    this.message = 'Content of page-one.html';
    //access the foodata property using $route.current
    var foo = $route.current.foodata;
    alert(foo);
});
3- این هم یک نمونه از تنظیمات مسیریابی :
myFirstRoute.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/pageOne', {
        templateUrl: 'templates/page_one.html',
        controller: 'ShowPage1Controller',
        controllerAs: 'tCtrlOne',
        foodata: 'valueOne'
      }).
      when('/pageTwo', {
        templateUrl: 'templates/page_two.html',
        controller: 'ShowPage2Controller',
        controllerAs: 'tCtrlTwo',
        foodata: 'valueTwo'
      }).
      otherwise({
        redirectTo: '/pageOne'
      });
}]);
البته اینها فقط برای تصحیح اشتباه است. وگر نه به ControllerAs ارتباطی ندارد. به احتمال زیاد مشکل شما عدم تزریق route$ به کنترلر بوده.
‫۱۰ سال و ۹ ماه قبل، شنبه ۳۰ آذر ۱۳۹۲، ساعت ۱۷:۰۷
ممنون از مثالتون. یک پروژه فروشگاه دارم که داخل هر صفحه‌ی آن پر است از اسکریپت‌های به قول شما مدفون شده. حتی فکر پیدا کردن و منتقل کردن هر کدوم از اونها به داخل یک فایل خارجی وحشت آور است.
‫۱۰ سال و ۹ ماه قبل، شنبه ۳۰ آذر ۱۳۹۲، ساعت ۱۶:۵۸
ما داخل صفحه‌ی Partial View میتونیم از امکانات Angular برای زمان بازگشت به سمت کلاینت استفاده کنیم.
ListOfItem مربوط به زمانی میشود که صفحه‌ی رندر شده و در اختیار کلاینت قرار گرفته است. و آماده استفاده از داده‌های در اختیار قرار داده شده توسط متغیری آرایه ای به نام ListOfItem  درکنترلر  موجود در Angular است .یعنی صفحه رندر شده میشود یه چیزی شبیه به این :
//استفاده از امکانات Razor
لیست مطالب
 
//استفاده از امکانات Angular
<div  ng-controller="PostController">
     <ul>
           <li ng-repeat="item in ListOfItems">
                  {{item.Title}}
            </li>
    </ul>
</div>
وحالا که یک صفحه‌ی HTML خام شده است میتوانید از آن استفاده کنید.
و این هم کنترلری که این صفحه را مدیریت میکندبرای مثال :
PostApp.controller('PostController', function ($scope, $http, postServices) {
       //...
      $scope.ListOfItems =
                    postServices.GetPosts(post)
                        .success(function (data) {
                            $scope.ListOfItems = data;
                        });
       //...
}

‫۱۰ سال و ۹ ماه قبل، شنبه ۳۰ آذر ۱۳۹۲، ساعت ۱۵:۵۲
یعنی کلیه اسکری‍ت‌ها حتی اسکری‍ت هایی مانند  :
<script type="text/javascript">
        $(document).ready(function () {
            PopupForm.ShowForm({
                renderFormUrl : "/postreply/renderreplyform",
                .....   
          });
        });
</script>
اجازه‌ی اجرا ندارند؟ و باید در یک فایل جدا به صفحه تزریق شوند؟
‫۱۰ سال و ۹ ماه قبل، شنبه ۳۰ آذر ۱۳۹۲، ساعت ۱۵:۳۷
راه دیگه برای بارگزاری صفحات تعریف مسیر یاب است فرض کنید مسیر زیر را تعریف کرده ایم :
var PostApp = angular.module('PostApp', []).config(['$routeProvider',
  function ($routeProvider) {
      $routeProvider.
          when('/list', {
              templateUrl: '/Administrator/Post/Index',
              controller: 'PostController'
          });
  }]);
در قسمت templateUrl مسیر یک اکشن Index در کنترلری به نام Post است که یک partial view بر میگرداند به شکل زیر :
public virtual ActionResult Index(int? id)
{
      var model = new PostViewModels
      {
          //......
      };
      return PartialView(viewName: "_Index", model: model);
}
در این اکشن ما مدل را به partial view ارسال میکنیم و ویو توسط razor رندر میشود و نتیجه که یک فایل html است بازگشت داده میشود و ما میتوانیم داخل این html از امکانات Angular استفاده کنیم یعنی:
 "قبل از اینکه این فایل‌های cshtml تبدیل به html شوند و به کلاینت برگردانده شوند، من با razor عملیات دلخواه خود را انجام می‌دهم. "
@using ViewModels.Administrator.Post

//استفاده از امکانات Razor
@(Html.EnumDropDownListMenu<PostPermition, AppViewPostResource>("permition-", "{{item.id}}"))

//استفاده از امکانات Angular
<div  ng-controller="PostController">
     <ul>
           <li ng-repeat="item in ListOfItems">
                  {{item.Title}}
            </li>
    </ul>
</div>